Version Description
(27th August 2016) = * Requires PHP 5.4 * Improved RTL support * Additional Content added to WPML/Polylang * Added sub-arrow active colours - Pro only * Added sub-arrow positioning side option * Allow 0 values to be entered * Switched sub-menu padding round if right text-alignment used * Added item link colours to transition list * Minor bug fixes
Download this release
Release Info
Developer | ResponsiveMenu |
Plugin | Responsive Menu |
Version | 3.0.10 |
Comparing to | |
See all releases |
Code changes from version 2.8.9 to 3.0.10
- app/autoload.php +0 -64
- app/bootstrap.php +0 -25
- app/config.php +0 -324
- app/controllers/AdminController.php +0 -168
- app/controllers/BaseController.php +0 -22
- app/controllers/CSSController.php +0 -74
- app/controllers/FrontController.php +0 -50
- app/controllers/GlobalController.php +0 -65
- app/controllers/HTMLController.php +0 -84
- app/controllers/InstallController.php +0 -40
- app/controllers/JSController.php +0 -76
- app/controllers/UpgradeController.php +0 -66
- app/library/responsive-menu/Export.php +0 -49
- app/library/responsive-menu/Import.php +0 -50
- app/library/responsive-menu/Input.php +0 -82
- app/library/responsive-menu/MenuWalker.php +0 -15
- app/library/responsive-menu/Registry.php +0 -51
- app/library/responsive-menu/ResponsiveMenu.php +0 -144
- app/library/responsive-menu/Shortcode.php +0 -24
- app/library/responsive-menu/Status.php +0 -48
- app/library/responsive-menu/Transient.php +0 -89
- app/library/responsive-menu/View.php +0 -96
- app/models/AdminModel.php +0 -386
- app/models/BaseModel.php +0 -70
- app/models/CSSModel.php +0 -542
- app/models/FolderModel.php +0 -38
- app/models/JSModel.php +0 -725
- app/views/admin/page.phtml +0 -2387
- app/views/click-button.phtml +0 -66
- app/views/menu.phtml +0 -75
- autoload.php +15 -0
- public/export/export.xml +0 -1
- public/imgs/icon.png +0 -0
- public/js/touch.js +0 -3
- readme.txt +192 -86
- responsive-menu.php +44 -36
- src/app/Collections/OptionsCollection.php +83 -0
- src/app/Controllers/Admin.php +56 -0
- src/app/Controllers/Front.php +41 -0
- src/app/Database/Database.php +10 -0
- src/app/Database/Migration.php +193 -0
- src/app/Database/WpDatabase.php +52 -0
- src/app/Factories/CssFactory.php +30 -0
- src/app/Factories/JsFactory.php +26 -0
- src/app/Factories/OptionFactory.php +28 -0
- src/app/Filesystem/FileCreator.php +22 -0
- src/app/Filesystem/FolderCreator.php +15 -0
- src/app/Filesystem/ScriptsBuilder.php +38 -0
- src/app/Filters/Filter.php +8 -0
- src/app/Filters/HtmlFilter.php +11 -0
- src/app/Filters/JsonFilter.php +11 -0
- src/app/Filters/TextFilter.php +11 -0
- src/app/Form/Checkbox.php +22 -0
- src/app/Form/Colour.php +13 -0
- src/app/Form/Export.php +11 -0
- src/app/Form/FontIconPageList.php +74 -0
- src/app/Form/FormComponent.php +8 -0
- src/app/Form/HeaderBarOrdering.php +48 -0
- src/app/Form/Image.php +14 -0
- src/app/Form/Import.php +11 -0
- src/app/Form/MenuOrdering.php +48 -0
- src/app/Form/Reset.php +11 -0
- src/app/Form/Select.php +22 -0
- src/app/Form/Text.php +13 -0
- src/app/Form/TextArea.php +13 -0
- src/app/Formatters/Minify.php +24 -0
- src/app/Mappers/JsMapper.php +187 -0
- src/app/Mappers/ScssBaseMapper.php +200 -0
- src/app/Mappers/ScssButtonMapper.php +63 -0
- src/app/Mappers/ScssMapper.php +11 -0
- src/app/Mappers/ScssMenuMapper.php +173 -0
- src/app/Mappers/scss.inc.php +4577 -0
- src/app/Models/Option.php +45 -0
- src/app/Repositories/OptionRepository.php +56 -0
- src/app/Routing/Container.php +47 -0
- src/app/Services/OptionService.php +57 -0
- src/app/Translation/Translator.php +41 -0
- src/app/View/AdminView.php +51 -0
- src/app/View/FrontView.php +71 -0
- src/app/View/View.php +8 -0
- src/app/ViewModels/Button.php +17 -0
- src/app/ViewModels/Components/Admin/Boxes.php +103 -0
- src/app/ViewModels/Components/Admin/Tabs.php +28 -0
- src/app/ViewModels/Components/Button/Button.php +39 -0
- src/app/ViewModels/Components/ComponentFactory.php +21 -0
- src/app/ViewModels/Components/Menu/AdditionalContent.php +23 -0
- src/app/ViewModels/Components/Menu/Menu.php +35 -0
- src/app/ViewModels/Components/Menu/Search.php +24 -0
- src/app/ViewModels/Components/Menu/Title.php +48 -0
- src/app/ViewModels/Components/ViewComponent.php +11 -0
- src/app/ViewModels/Menu.php +23 -0
- src/app/Walkers/WpWalker.php +125 -0
- src/config/admin_ordering.php +1219 -0
- src/config/default_options.php +164 -0
- src/config/internationalise.php +29 -0
- src/config/option_helpers.php +19 -0
- src/config/routing.php +54 -0
- src/config/services.php +164 -0
- src/public/css/admin/main.css +745 -0
- src/public/js/admin/main.js +65 -0
- src/public/js/admin/postbox-edit.js +4 -0
- src/public/scss/hamburgers/_base.scss +69 -0
- src/public/scss/hamburgers/hamburgers.scss +57 -0
- src/public/scss/hamburgers/types/_boring.scss +30 -0
- src/views/admin/main.phtml +108 -0
- src/views/button.phtml +1 -0
- src/views/menu.phtml +8 -0
- src/views/preview.phtml +16 -0
- translations/responsive-menu-de_DE.mo +0 -0
- translations/responsive-menu-de_DE.po +0 -958
- translations/responsive-menu-es_ES.mo +0 -0
- translations/responsive-menu-es_ES.po +488 -872
- translations/responsive-menu-fr_FR.mo +0 -0
- translations/responsive-menu-fr_FR.po +0 -1093
- translations/responsive-menu-hr.mo +0 -0
- translations/responsive-menu-hr.po +0 -1131
- translations/responsive-menu-nl_NL.mo +0 -0
- translations/responsive-menu-nl_NL.po +0 -1089
- translations/responsive-menu.mo +0 -0
- translations/responsive-menu.po +0 -958
- wpml-config.xml +0 -14
app/autoload.php
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
|--------------------------------------------------------------------------
|
5 |
-
| Autoload our application
|
6 |
-
|--------------------------------------------------------------------------
|
7 |
-
|
|
8 |
-
| Here we include all our required files for the application to run correctly.
|
9 |
-
| At the moment this is a big mess of require_once calls and needs to be
|
10 |
-
| tidied up with an autoloader function
|
11 |
-
|
|
12 |
-
*/
|
13 |
-
|
14 |
-
define( 'RM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
15 |
-
|
16 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Registry.php';
|
17 |
-
|
18 |
-
require_once RM_PLUGIN_DIR . 'config.php';
|
19 |
-
|
20 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/ResponsiveMenu.php';
|
21 |
-
|
22 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/View.php';
|
23 |
-
|
24 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Status.php';
|
25 |
-
|
26 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Input.php';
|
27 |
-
|
28 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Shortcode.php';
|
29 |
-
|
30 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/MenuWalker.php';
|
31 |
-
|
32 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Import.php';
|
33 |
-
|
34 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Export.php';
|
35 |
-
|
36 |
-
require_once RM_PLUGIN_DIR . 'library/responsive-menu/Transient.php';
|
37 |
-
|
38 |
-
require_once RM_PLUGIN_DIR . 'controllers/BaseController.php';
|
39 |
-
|
40 |
-
require_once RM_PLUGIN_DIR . 'controllers/AdminController.php';
|
41 |
-
|
42 |
-
require_once RM_PLUGIN_DIR . 'controllers/FrontController.php';
|
43 |
-
|
44 |
-
require_once RM_PLUGIN_DIR . 'controllers/GlobalController.php';
|
45 |
-
|
46 |
-
require_once RM_PLUGIN_DIR . 'controllers/InstallController.php';
|
47 |
-
|
48 |
-
require_once RM_PLUGIN_DIR . 'controllers/HTMLController.php';
|
49 |
-
|
50 |
-
require_once RM_PLUGIN_DIR . 'controllers/JSController.php';
|
51 |
-
|
52 |
-
require_once RM_PLUGIN_DIR . 'controllers/CSSController.php';
|
53 |
-
|
54 |
-
require_once RM_PLUGIN_DIR . 'controllers/UpgradeController.php';
|
55 |
-
|
56 |
-
require_once RM_PLUGIN_DIR . 'models/BaseModel.php';
|
57 |
-
|
58 |
-
require_once RM_PLUGIN_DIR . 'models/AdminModel.php';
|
59 |
-
|
60 |
-
require_once RM_PLUGIN_DIR . 'models/FolderModel.php';
|
61 |
-
|
62 |
-
require_once RM_PLUGIN_DIR . 'models/CSSModel.php';
|
63 |
-
|
64 |
-
require_once RM_PLUGIN_DIR . 'models/JSModel.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/bootstrap.php
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
|--------------------------------------------------------------------------
|
5 |
-
| Autoload our application
|
6 |
-
|--------------------------------------------------------------------------
|
7 |
-
|
|
8 |
-
| Here we include our autoloader file that will deal with including all our
|
9 |
-
| required class files.
|
10 |
-
|
|
11 |
-
*/
|
12 |
-
|
13 |
-
require_once dirname( __FILE__ ) . '/autoload.php';
|
14 |
-
|
15 |
-
|
16 |
-
/*
|
17 |
-
|--------------------------------------------------------------------------
|
18 |
-
| Create The Application
|
19 |
-
|--------------------------------------------------------------------------
|
20 |
-
|
|
21 |
-
| The first real thing we will do is create a new Responsive Menu instance.
|
22 |
-
|
|
23 |
-
*/
|
24 |
-
|
25 |
-
$app = new ResponsiveMenu;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/config.php
DELETED
@@ -1,324 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
/*
|
5 |
-
|--------------------------------------------------------------------------
|
6 |
-
| Configuration Settings
|
7 |
-
|--------------------------------------------------------------------------
|
8 |
-
|
|
9 |
-
| Although some people aren't fans of array configurations, here we have one!
|
10 |
-
| This is where we set paths and our version number among other things.
|
11 |
-
|
|
12 |
-
*/
|
13 |
-
|
14 |
-
$config = array(
|
15 |
-
|
16 |
-
|
17 |
-
'current_version' => "2.8.9",
|
18 |
-
|
19 |
-
|
20 |
-
'plugins_dir' => plugin_dir_path( __FILE__ ),
|
21 |
-
|
22 |
-
|
23 |
-
'plugins_base_uri' => plugin_dir_url( dirname( __FILE__ ) ),
|
24 |
-
|
25 |
-
|
26 |
-
'plugin_base_dir' => dirname( plugin_dir_path( __FILE__ ) ),
|
27 |
-
|
28 |
-
|
29 |
-
'plugin_base_uri' => plugin_dir_url( dirname( __FILE__ ) ),
|
30 |
-
|
31 |
-
|
32 |
-
'plugin_data_uri' => plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'responsive-menu-data/',
|
33 |
-
|
34 |
-
|
35 |
-
'plugin_data_dir' => dirname( dirname( plugin_dir_path( __FILE__ ) ) ) . '/responsive-menu-data/',
|
36 |
-
|
37 |
-
|
38 |
-
);
|
39 |
-
|
40 |
-
/*
|
41 |
-
|--------------------------------------------------------------------------
|
42 |
-
| Save Config to the Registry
|
43 |
-
|--------------------------------------------------------------------------
|
44 |
-
|
|
45 |
-
| Again, some people don't like Registry's in PHP Applications, but here we
|
46 |
-
| have one and it is very useful for retrieving our settings throughout the app
|
47 |
-
|
|
48 |
-
*/
|
49 |
-
|
50 |
-
RM_Registry::set( 'config', $config );
|
51 |
-
|
52 |
-
|
53 |
-
/*
|
54 |
-
|--------------------------------------------------------------------------
|
55 |
-
| Responsive Menu Defaults
|
56 |
-
|--------------------------------------------------------------------------
|
57 |
-
|
|
58 |
-
| Another configuration array of type, this time we hold all the application
|
59 |
-
| default options.
|
60 |
-
|
|
61 |
-
*/
|
62 |
-
|
63 |
-
$defaults = array(
|
64 |
-
|
65 |
-
|
66 |
-
'RM' => '',
|
67 |
-
|
68 |
-
|
69 |
-
'RMBreak' => 800,
|
70 |
-
|
71 |
-
|
72 |
-
'RMDepth' => 2,
|
73 |
-
|
74 |
-
|
75 |
-
'RMTop' => 10,
|
76 |
-
|
77 |
-
|
78 |
-
'RMRight' => 5,
|
79 |
-
|
80 |
-
|
81 |
-
'RMCss' => '',
|
82 |
-
|
83 |
-
|
84 |
-
'RMTitle' => __( 'Menu Title', 'responsive-menu' ),
|
85 |
-
|
86 |
-
|
87 |
-
'RMLineCol' => '#FFFFFF',
|
88 |
-
|
89 |
-
|
90 |
-
'RMClickBkg' => '#000000',
|
91 |
-
|
92 |
-
|
93 |
-
'RMClickTitle' => '',
|
94 |
-
|
95 |
-
|
96 |
-
'RMBkgTran' => false,
|
97 |
-
|
98 |
-
|
99 |
-
'RMFont' => '',
|
100 |
-
|
101 |
-
|
102 |
-
'RMPos' => '',
|
103 |
-
|
104 |
-
|
105 |
-
'RMImage' => '',
|
106 |
-
|
107 |
-
|
108 |
-
'RMWidth' => '75',
|
109 |
-
|
110 |
-
|
111 |
-
'RMBkg' => '#43494C',
|
112 |
-
|
113 |
-
|
114 |
-
'RMBkgHov' => '#3C3C3C',
|
115 |
-
|
116 |
-
|
117 |
-
'RMTitleCol' => '#FFFFFF',
|
118 |
-
|
119 |
-
|
120 |
-
'RMTextCol' => '#FFFFFF',
|
121 |
-
|
122 |
-
|
123 |
-
'RMBorCol' => '#3C3C3C',
|
124 |
-
|
125 |
-
|
126 |
-
'RMTextColHov' => '#FFFFFF',
|
127 |
-
|
128 |
-
|
129 |
-
'RMTitleColHov' => '#FFFFFF',
|
130 |
-
|
131 |
-
|
132 |
-
/* Added in 1.6 */
|
133 |
-
|
134 |
-
|
135 |
-
'RMAnim' => 'overlay',
|
136 |
-
|
137 |
-
|
138 |
-
'RMPushCSS' => '',
|
139 |
-
|
140 |
-
|
141 |
-
'RMTitleBkg' => '#43494C',
|
142 |
-
|
143 |
-
|
144 |
-
'RMFontSize' => 13,
|
145 |
-
|
146 |
-
|
147 |
-
'RMTitleSize' => 14,
|
148 |
-
|
149 |
-
|
150 |
-
'RMBtnSize' => 13,
|
151 |
-
|
152 |
-
|
153 |
-
'RMCurBkg' => '#43494C',
|
154 |
-
|
155 |
-
|
156 |
-
'RMCurCol' => '#FFFFFF',
|
157 |
-
|
158 |
-
|
159 |
-
'RMAnimSpd' => 0.5,
|
160 |
-
|
161 |
-
|
162 |
-
/* Added in 1.7 */
|
163 |
-
|
164 |
-
|
165 |
-
'RMTranSpd' => 1,
|
166 |
-
|
167 |
-
|
168 |
-
'RMTxtAlign' => 'left',
|
169 |
-
|
170 |
-
|
171 |
-
'RMSearch' => false,
|
172 |
-
|
173 |
-
|
174 |
-
'RMExpand' => false,
|
175 |
-
|
176 |
-
|
177 |
-
'RMLinkHeight' => 20,
|
178 |
-
|
179 |
-
|
180 |
-
/* Added in 1.8 */
|
181 |
-
|
182 |
-
|
183 |
-
'RMExternal' => false,
|
184 |
-
|
185 |
-
|
186 |
-
'RMSide' => 'left',
|
187 |
-
|
188 |
-
|
189 |
-
/* Added in 1.9 */
|
190 |
-
|
191 |
-
|
192 |
-
'RMFooter' => true,
|
193 |
-
|
194 |
-
|
195 |
-
'RMClickImg' => false,
|
196 |
-
|
197 |
-
|
198 |
-
'RMMinify' => true,
|
199 |
-
|
200 |
-
|
201 |
-
'RMClickClose' => false,
|
202 |
-
|
203 |
-
|
204 |
-
'RMRemImp' => false,
|
205 |
-
|
206 |
-
|
207 |
-
'RMX' => false,
|
208 |
-
|
209 |
-
|
210 |
-
'RMMinWidth' => null,
|
211 |
-
|
212 |
-
|
213 |
-
/* Added in 2.0 */
|
214 |
-
|
215 |
-
|
216 |
-
'RMMaxWidth' => null,
|
217 |
-
|
218 |
-
|
219 |
-
'RMExpandPar' => true,
|
220 |
-
|
221 |
-
|
222 |
-
'RMIgnParCli' => false,
|
223 |
-
|
224 |
-
|
225 |
-
'RMCliToClo' => false,
|
226 |
-
|
227 |
-
|
228 |
-
'RMSearchPos' => 'below',
|
229 |
-
|
230 |
-
|
231 |
-
'RMTitleLink' => null,
|
232 |
-
|
233 |
-
|
234 |
-
'RMTitleLoc' => '_self',
|
235 |
-
|
236 |
-
|
237 |
-
'RMHtml' => null,
|
238 |
-
|
239 |
-
|
240 |
-
'RMHtmlLoc' => 'bottom',
|
241 |
-
|
242 |
-
|
243 |
-
/* Added in 2.1 */
|
244 |
-
|
245 |
-
'RMShortcode' => false,
|
246 |
-
|
247 |
-
|
248 |
-
/* Added in 2.2 */
|
249 |
-
|
250 |
-
'RMLineHeight' => 5,
|
251 |
-
|
252 |
-
|
253 |
-
'RMLineWidth' => 33,
|
254 |
-
|
255 |
-
|
256 |
-
'RMLineMargin' => 6,
|
257 |
-
|
258 |
-
|
259 |
-
'RMClickImgClicked' => null,
|
260 |
-
|
261 |
-
|
262 |
-
'RMAccordion' => false,
|
263 |
-
|
264 |
-
|
265 |
-
'RMArShpA' => json_encode( '▲' ),
|
266 |
-
|
267 |
-
|
268 |
-
'RMArShpI' => json_encode( '▼' ),
|
269 |
-
|
270 |
-
|
271 |
-
'RMArImgA' => false,
|
272 |
-
|
273 |
-
|
274 |
-
'RMArImgI' => false,
|
275 |
-
|
276 |
-
|
277 |
-
/* Added in 2.3 */
|
278 |
-
|
279 |
-
'RMTrigger' => '#click-menu',
|
280 |
-
|
281 |
-
|
282 |
-
'RMPushBtn' => false,
|
283 |
-
|
284 |
-
|
285 |
-
'RMCurBkgHov' => '#43494C',
|
286 |
-
|
287 |
-
|
288 |
-
'RMCurColHov' => '#FFFFFF',
|
289 |
-
|
290 |
-
|
291 |
-
'RMWalker' => null,
|
292 |
-
|
293 |
-
/* Added in 2.4 */
|
294 |
-
|
295 |
-
'RMUseTran' => null,
|
296 |
-
|
297 |
-
|
298 |
-
'RMLoc' => 'right',
|
299 |
-
|
300 |
-
/* Added in 2.6 by Mkdgs*/
|
301 |
-
|
302 |
-
'RMThemeLocation' => null,
|
303 |
-
|
304 |
-
/* Added in 2.8.7 */
|
305 |
-
|
306 |
-
'RMClickTitlePos' => 'bottom',
|
307 |
-
|
308 |
-
'RMClickTitleHeight' => '14'
|
309 |
-
|
310 |
-
);
|
311 |
-
|
312 |
-
|
313 |
-
/*
|
314 |
-
|--------------------------------------------------------------------------
|
315 |
-
| Save Defaults to the Registry
|
316 |
-
|--------------------------------------------------------------------------
|
317 |
-
|
|
318 |
-
| Again, some people don't like Registry's in PHP Applications, but here we
|
319 |
-
| have it again and it is very useful for retrieving our default values
|
320 |
-
| throughout the app
|
321 |
-
|
|
322 |
-
*/
|
323 |
-
|
324 |
-
RM_Registry::set( 'defaults', $defaults );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/AdminController.php
DELETED
@@ -1,168 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class RM_AdminController extends RM_BaseController {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Prepare our Admin Options
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 2.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
// Check that we are in the admin area
|
17 |
-
if( is_admin() ) :
|
18 |
-
|
19 |
-
add_filter( 'plugin_action_links', array( 'RM_AdminController', 'addSettingsLink' ), 10, 2 );
|
20 |
-
add_action( 'admin_menu', array( 'RM_AdminController', 'addMenus' ) );
|
21 |
-
|
22 |
-
// Clear Transients on Saving/Updating Menus/Posts
|
23 |
-
// Added 2.4
|
24 |
-
|
25 |
-
if( ResponsiveMenu::getOption( 'RMUseTran' ) ) :
|
26 |
-
add_action( 'wp_update_nav_menu', array( 'RM_Transient', 'clearTransientMenus' ) );
|
27 |
-
add_action( 'save_post', array( 'RM_Transient', 'clearTransientMenus' ) );
|
28 |
-
endif;
|
29 |
-
|
30 |
-
// Specifically for Responsive Menu Page
|
31 |
-
if( isset( $_GET['page'] ) && $_GET['page'] == 'responsive-menu' ) :
|
32 |
-
|
33 |
-
add_action( 'admin_enqueue_scripts', array( 'RM_AdminController', 'colorpicker' ) );
|
34 |
-
|
35 |
-
endif;
|
36 |
-
|
37 |
-
|
38 |
-
endif;
|
39 |
-
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
|
44 |
-
/**
|
45 |
-
* Create our admin menus.
|
46 |
-
*
|
47 |
-
* @return null
|
48 |
-
* @added 1.0
|
49 |
-
*/
|
50 |
-
|
51 |
-
static function addMenus() {
|
52 |
-
|
53 |
-
|
54 |
-
add_menu_page(
|
55 |
-
|
56 |
-
__( 'Responsive Menu', 'responsive-menu' ),
|
57 |
-
__( 'Responsive Menu', 'responsive-menu' ),
|
58 |
-
'manage_options',
|
59 |
-
'responsive-menu',
|
60 |
-
array( 'RM_AdminController', 'adminPage' ),
|
61 |
-
RM_Registry::get( 'config', 'plugins_base_uri' ) . 'public/imgs/icon.png'
|
62 |
-
|
63 |
-
);
|
64 |
-
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Creates the main admin page and saves the data if submitted
|
70 |
-
*
|
71 |
-
* @return null
|
72 |
-
* @added 1.0
|
73 |
-
*/
|
74 |
-
|
75 |
-
static function adminPage() {
|
76 |
-
|
77 |
-
if( RM_Input::post( 'RMExport' ) ) :
|
78 |
-
|
79 |
-
RM_Export::export();
|
80 |
-
|
81 |
-
endif;
|
82 |
-
|
83 |
-
if( RM_Input::post( 'RMSubmit' )
|
84 |
-
|| RM_Input::post( 'RMImport' )
|
85 |
-
|| RM_Input::post( 'RMReset' ) ) :
|
86 |
-
|
87 |
-
$data = RM_Input::post( 'RMImport' ) ? RM_Import::getData( RM_Input::file( 'RMImportFile' ) ) : RM_Input::post();
|
88 |
-
|
89 |
-
/* Reset to defaults */
|
90 |
-
if( RM_Input::post( 'RMReset' ) ) :
|
91 |
-
$data = RM_Registry::get( 'defaults' );
|
92 |
-
$data['RMArShpA'] = json_decode( $data['RMArShpA'] );
|
93 |
-
$data['RMArShpI'] = json_decode( $data['RMArShpI'] );
|
94 |
-
endif;
|
95 |
-
|
96 |
-
RM_AdminModel::save( $data );
|
97 |
-
|
98 |
-
if( ResponsiveMenu::getOption( 'RMExternal' ) ) :
|
99 |
-
|
100 |
-
RM_FolderModel::create();
|
101 |
-
|
102 |
-
$js = RM_JSModel::getJs( ResponsiveMenu::getOptions() );
|
103 |
-
$js = ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_JSModel::Minify( $js ) : $js = $js;
|
104 |
-
RM_JSModel::createJSFile( $js );
|
105 |
-
|
106 |
-
|
107 |
-
$css = RM_CSSModel::getCSS( ResponsiveMenu::getOptions() );
|
108 |
-
$css = ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_JSModel::Minify( $css ) : $css = $css;
|
109 |
-
RM_CSSModel::createCSSFile( $css );
|
110 |
-
|
111 |
-
|
112 |
-
endif;
|
113 |
-
|
114 |
-
|
115 |
-
endif;
|
116 |
-
|
117 |
-
RM_View::make( 'admin.page', ResponsiveMenu::getOptions() );
|
118 |
-
|
119 |
-
|
120 |
-
}
|
121 |
-
|
122 |
-
/**
|
123 |
-
* Adds the WordPress Colour Picker to the admin options page
|
124 |
-
*
|
125 |
-
* @return null
|
126 |
-
* @added 1.0
|
127 |
-
*/
|
128 |
-
|
129 |
-
static function colorpicker(){
|
130 |
-
|
131 |
-
|
132 |
-
wp_enqueue_media();
|
133 |
-
wp_enqueue_style( 'wp-color-picker' );
|
134 |
-
wp_enqueue_script( 'wp-color-picker' );
|
135 |
-
|
136 |
-
|
137 |
-
}
|
138 |
-
|
139 |
-
|
140 |
-
/**
|
141 |
-
* Adds the settings link on the WordPress Plugins Page
|
142 |
-
*
|
143 |
-
* @param array $links
|
144 |
-
* @param string $file
|
145 |
-
* @return array
|
146 |
-
* @added 2.0
|
147 |
-
*/
|
148 |
-
|
149 |
-
static function addSettingsLink( $links, $file ) {
|
150 |
-
|
151 |
-
|
152 |
-
if ( $file == 'responsive-menu/responsive-menu.php' ) :
|
153 |
-
|
154 |
-
$settings_link = '<a href="' . get_bloginfo('wpurl') . '/wp-admin/admin.php?page=responsive-menu">';
|
155 |
-
$settings_link .= __( 'Settings', 'responsive-menu' );
|
156 |
-
$settings_link .= '</a>';
|
157 |
-
|
158 |
-
array_unshift( $links, $settings_link );
|
159 |
-
|
160 |
-
endif;
|
161 |
-
|
162 |
-
return $links;
|
163 |
-
|
164 |
-
|
165 |
-
}
|
166 |
-
|
167 |
-
|
168 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/BaseController.php
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_BaseController {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Determines wether to display scripts in footer
|
8 |
-
*
|
9 |
-
* @return boolean
|
10 |
-
* @added 2.0
|
11 |
-
*/
|
12 |
-
|
13 |
-
static function inFooter() {
|
14 |
-
|
15 |
-
|
16 |
-
return ResponsiveMenu::getOption( 'RMFooter' ) && ResponsiveMenu::getOption( 'RMFooter' ) == 'footer' ? true : false;
|
17 |
-
|
18 |
-
|
19 |
-
}
|
20 |
-
|
21 |
-
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/CSSController.php
DELETED
@@ -1,74 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class RM_CSSController extends RM_BaseController {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Prepare our CSS Outputs
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 2.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
|
17 |
-
if( ResponsiveMenu::getOption( 'RMExternal' ) ) :
|
18 |
-
|
19 |
-
|
20 |
-
add_action( 'wp_enqueue_scripts', array( 'RM_CSSController', 'addExternal' ) );
|
21 |
-
|
22 |
-
|
23 |
-
else :
|
24 |
-
|
25 |
-
|
26 |
-
add_action( 'wp_head', array( 'RM_CSSController', 'addInline' ) );
|
27 |
-
|
28 |
-
|
29 |
-
endif;
|
30 |
-
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Create and echos the Inline Styles
|
37 |
-
*
|
38 |
-
* @return string
|
39 |
-
* @added 2.0
|
40 |
-
*/
|
41 |
-
|
42 |
-
static function addInline() {
|
43 |
-
|
44 |
-
$opt = ResponsiveMenu::getOptions();
|
45 |
-
|
46 |
-
echo ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_CSSModel::Minify( RM_CSSModel::getCSS( $opt ) ) : RM_CSSModel::getCSS( $opt );
|
47 |
-
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Adds External Styles to Header
|
54 |
-
*
|
55 |
-
* @return null
|
56 |
-
* @added 2.0
|
57 |
-
*/
|
58 |
-
|
59 |
-
static function addExternal() {
|
60 |
-
|
61 |
-
|
62 |
-
wp_enqueue_style(
|
63 |
-
'responsive-menu',
|
64 |
-
RM_Registry::get( 'config', 'plugin_data_uri' ) . 'css/responsive-menu-' . get_current_blog_id() . '.css',
|
65 |
-
array(),
|
66 |
-
'1.0',
|
67 |
-
'all'
|
68 |
-
);
|
69 |
-
|
70 |
-
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/FrontController.php
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_FrontController extends RM_BaseController {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Prepare our Front End Options
|
8 |
-
*
|
9 |
-
* @return null
|
10 |
-
* @added 2.0
|
11 |
-
*/
|
12 |
-
|
13 |
-
static function prepare() {
|
14 |
-
|
15 |
-
// Check that we are in the admin area
|
16 |
-
if( !is_admin() ) :
|
17 |
-
|
18 |
-
|
19 |
-
if( ResponsiveMenu::getOption( 'RMCliToClo' ) ) :
|
20 |
-
|
21 |
-
add_action( 'wp_enqueue_scripts', array( 'RM_FrontController', 'jQueryMobile' ) );
|
22 |
-
|
23 |
-
endif;
|
24 |
-
|
25 |
-
|
26 |
-
endif;
|
27 |
-
|
28 |
-
|
29 |
-
}
|
30 |
-
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Makes sure jQuery Mobile is added to all front pages if the specific option is selected
|
34 |
-
* as it is needed for some of the functions to work
|
35 |
-
*
|
36 |
-
* @return null
|
37 |
-
* @added 2.0
|
38 |
-
*/
|
39 |
-
|
40 |
-
static function jQueryMobile() {
|
41 |
-
|
42 |
-
|
43 |
-
wp_register_script( 'touch', RM_Registry::get( 'config', 'plugin_base_uri' ) . 'public/js/touch.js', 'jquery', '', false );
|
44 |
-
wp_enqueue_script( 'touch' );
|
45 |
-
|
46 |
-
|
47 |
-
}
|
48 |
-
|
49 |
-
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/GlobalController.php
DELETED
@@ -1,65 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class RM_GlobalController extends RM_BaseController {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Prepare our Global Options
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 2.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
|
17 |
-
add_action( 'plugins_loaded', array( 'RM_GlobalController', 'Internationalise' ) );
|
18 |
-
add_action( 'wp_enqueue_scripts', array( 'RM_GlobalController', 'jQuery' ) );
|
19 |
-
|
20 |
-
|
21 |
-
}
|
22 |
-
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Makes sure jQuery is added to all pages as it is needed for the
|
26 |
-
* system to work
|
27 |
-
*
|
28 |
-
* @return null
|
29 |
-
* @added 1.0
|
30 |
-
*/
|
31 |
-
|
32 |
-
static function jQuery() {
|
33 |
-
|
34 |
-
|
35 |
-
wp_enqueue_script( 'jquery' );
|
36 |
-
|
37 |
-
|
38 |
-
}
|
39 |
-
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Loads our Translations for use throughout the program
|
43 |
-
*
|
44 |
-
* Current Translations:
|
45 |
-
*
|
46 |
-
* hr_HR - Croatian - With thanks to Neverone Design - https://www.facebook.com/pages/Neverone-design/490262371018076
|
47 |
-
* es_ES - Spanish - With thanks to Andrew @ WebHostingHub - http://www.webhostinghub.com
|
48 |
-
*
|
49 |
-
* @return null
|
50 |
-
* @added 1.6
|
51 |
-
*/
|
52 |
-
|
53 |
-
|
54 |
-
static function Internationalise() {
|
55 |
-
|
56 |
-
|
57 |
-
__( 'Highly Customisable Responsive Menu Plugin for WordPress', 'responsive-menu' );
|
58 |
-
|
59 |
-
load_plugin_textdomain( 'responsive-menu', false, 'responsive-menu/translations/' );
|
60 |
-
|
61 |
-
|
62 |
-
}
|
63 |
-
|
64 |
-
|
65 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/HTMLController.php
DELETED
@@ -1,84 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class RM_HTMLController extends RM_BaseController {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Prepare the HTML for display on the front end
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 1.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
|
17 |
-
if( !ResponsiveMenu::getOption( 'RMShortcode' ) )
|
18 |
-
add_action( 'wp_footer', array( 'RM_HTMLController', 'display' ) );
|
19 |
-
|
20 |
-
|
21 |
-
}
|
22 |
-
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Creates the view for the menu and echos it out
|
26 |
-
*
|
27 |
-
* @return string
|
28 |
-
* @added 1.0
|
29 |
-
*/
|
30 |
-
|
31 |
-
static function display( $args = null ) {
|
32 |
-
|
33 |
-
/* Unfortunately this messy section is due to shortcodes converting all args to lowercase */
|
34 |
-
|
35 |
-
if( $args ) :
|
36 |
-
|
37 |
-
if( isset( $args['rm'] ) )
|
38 |
-
$args['RM'] = $args['rm'];
|
39 |
-
|
40 |
-
if( isset( $args['menu'] ) )
|
41 |
-
$args['RM'] = $args['menu'];
|
42 |
-
|
43 |
-
if( isset( $args['title'] ) )
|
44 |
-
$args['RMTitle'] = $args['title'];
|
45 |
-
|
46 |
-
if( isset( $args['title_link'] ) )
|
47 |
-
$args['RMTitleLink'] = $args['title_link'];
|
48 |
-
|
49 |
-
if( isset( $args['title_open'] ) )
|
50 |
-
$args['RMTitleLoc'] = $args['title_open'];
|
51 |
-
|
52 |
-
if( isset( $args['html'] ) )
|
53 |
-
$args['RMHtml'] = $args['html'];
|
54 |
-
|
55 |
-
if( isset( $args['html_loc'] ) )
|
56 |
-
$args['RMHtmlLoc'] = $args['html_loc'];
|
57 |
-
|
58 |
-
if( isset( $args['title_img'] ) )
|
59 |
-
$args['RMImage'] = $args['title_img'];
|
60 |
-
|
61 |
-
if( isset( $args['search_loc'] ) )
|
62 |
-
$args['RMSearchPos'] = $args['search_loc'];
|
63 |
-
|
64 |
-
if( isset( $args['btn_img'] ) )
|
65 |
-
$args['RMClickImg'] = $args['btn_img'];
|
66 |
-
|
67 |
-
if( isset( $args['btn_img_clicked'] ) )
|
68 |
-
$args['RMClickImgClicked'] = $args['btn_img_clicked'];
|
69 |
-
|
70 |
-
if( isset( $args['btn_title'] ) )
|
71 |
-
$args['RMClickTitle'] = $args['btn_title'];
|
72 |
-
|
73 |
-
endif;
|
74 |
-
|
75 |
-
$options = ResponsiveMenu::getOptions();
|
76 |
-
|
77 |
-
RM_View::make( 'menu', $args ? array_merge( $options, $args ) : $options );
|
78 |
-
RM_View::make( 'click-button', $args ? array_merge( $options, $args ) : $options );
|
79 |
-
|
80 |
-
|
81 |
-
}
|
82 |
-
|
83 |
-
|
84 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/InstallController.php
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_InstallController extends RM_BaseController {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Prepare our Installation Options
|
8 |
-
*
|
9 |
-
* @return null
|
10 |
-
* @added 2.0
|
11 |
-
*/
|
12 |
-
|
13 |
-
static function prepare() {
|
14 |
-
|
15 |
-
|
16 |
-
register_activation_hook( __FILE__, array( 'RM_InstallController', 'install' ) );
|
17 |
-
|
18 |
-
|
19 |
-
}
|
20 |
-
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Sets our initial default options when menu
|
24 |
-
* is first installed
|
25 |
-
*
|
26 |
-
* @return null
|
27 |
-
* @added 1.0
|
28 |
-
*/
|
29 |
-
|
30 |
-
static function install() {
|
31 |
-
|
32 |
-
|
33 |
-
add_option( 'RMVer', RM_Registry::get( 'config', 'current_version' ) );
|
34 |
-
add_option( 'RMOptions', RM_Registry::get( 'defaults' ) );
|
35 |
-
|
36 |
-
|
37 |
-
}
|
38 |
-
|
39 |
-
|
40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/JSController.php
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class RM_JSController extends RM_BaseController {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Prepare our JavaScript for inclusion throughout the site
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 1.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
|
17 |
-
if( ResponsiveMenu::getOption( 'RMExternal' ) ) :
|
18 |
-
|
19 |
-
|
20 |
-
add_action( 'wp_enqueue_scripts', array( 'RM_JSController', 'addExternal' ) );
|
21 |
-
|
22 |
-
|
23 |
-
else :
|
24 |
-
|
25 |
-
|
26 |
-
add_action( self::inFooter() ? 'wp_footer' : 'wp_head', array( 'RM_JSController', 'addInline' ) );
|
27 |
-
|
28 |
-
|
29 |
-
endif;
|
30 |
-
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Creates and echos the inline styles if used
|
37 |
-
*
|
38 |
-
* @return string
|
39 |
-
* @added 1.0
|
40 |
-
*/
|
41 |
-
|
42 |
-
static function addInline() {
|
43 |
-
|
44 |
-
$opt = ResponsiveMenu::getOptions();
|
45 |
-
|
46 |
-
echo ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_JSModel::Minify( RM_JSModel::getJs( $opt ) ) : RM_JSModel::getJs( $opt );
|
47 |
-
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Adds the external scripts to the site if required
|
54 |
-
*
|
55 |
-
* @return null
|
56 |
-
* @added 1.4
|
57 |
-
*/
|
58 |
-
|
59 |
-
static function addExternal() {
|
60 |
-
|
61 |
-
|
62 |
-
wp_enqueue_script(
|
63 |
-
|
64 |
-
'responsive-menu',
|
65 |
-
RM_Registry::get( 'config', 'plugin_data_uri' ) . 'js/responsive-menu-' . get_current_blog_id() . '.js',
|
66 |
-
'jquery.mobile',
|
67 |
-
'1.0',
|
68 |
-
self::inFooter()
|
69 |
-
|
70 |
-
);
|
71 |
-
|
72 |
-
|
73 |
-
}
|
74 |
-
|
75 |
-
|
76 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/controllers/UpgradeController.php
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_UpgradeController extends RM_BaseController {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Script that runs if the menu has been upgraded
|
8 |
-
*
|
9 |
-
* @return mixed
|
10 |
-
* @added 2.0
|
11 |
-
*/
|
12 |
-
|
13 |
-
static function upgrade() {
|
14 |
-
|
15 |
-
|
16 |
-
if( self::needsUpgrade() ) :
|
17 |
-
|
18 |
-
|
19 |
-
if( ResponsiveMenu::getOption( 'RMExternal' ) ) :
|
20 |
-
|
21 |
-
|
22 |
-
RM_FolderModel::create();
|
23 |
-
|
24 |
-
$js = RM_JSModel::getJs( ResponsiveMenu::getOptions() );
|
25 |
-
$js = ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_JSModel::Minify( $js ) : $js = $js;
|
26 |
-
|
27 |
-
RM_JSModel::createJSFile( $js );
|
28 |
-
|
29 |
-
$css = RM_CSSModel::getCSS( ResponsiveMenu::getOptions() );
|
30 |
-
$css = ResponsiveMenu::getOption( 'RMMinify' ) == 'minify' ? RM_CSSModel::Minify( $css ) : $css = $css;
|
31 |
-
|
32 |
-
RM_CSSModel::createCSSFile( $css );
|
33 |
-
|
34 |
-
|
35 |
-
endif;
|
36 |
-
|
37 |
-
/* Update Version */
|
38 |
-
update_option( 'RMVer', RM_Registry::get( 'config', 'current_version' ) );
|
39 |
-
|
40 |
-
/* Merge Changes */
|
41 |
-
update_option( 'RMOptions', array_merge( RM_Registry::get( 'defaults' ), ResponsiveMenu::getOptions() ) );
|
42 |
-
|
43 |
-
|
44 |
-
endif;
|
45 |
-
|
46 |
-
|
47 |
-
}
|
48 |
-
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Determines whether or not the site needs upgrading
|
52 |
-
*
|
53 |
-
* @return boolean
|
54 |
-
* @added 2.0
|
55 |
-
*/
|
56 |
-
|
57 |
-
static function needsUpgrade() {
|
58 |
-
|
59 |
-
|
60 |
-
return version_compare( get_option( 'RMVer' ), RM_Registry::get( 'config', 'current_version' ), '<' );
|
61 |
-
|
62 |
-
|
63 |
-
}
|
64 |
-
|
65 |
-
|
66 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Export.php
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Export {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Function to create export XML file
|
8 |
-
*
|
9 |
-
* @return file xml
|
10 |
-
* @added 2.2
|
11 |
-
*/
|
12 |
-
|
13 |
-
static function export() {
|
14 |
-
|
15 |
-
if( !is_admin() ) exit();
|
16 |
-
|
17 |
-
$fileName = RM_Registry::get( 'config', 'plugin_base_dir' ) . '/public/export/export.xml';
|
18 |
-
|
19 |
-
$file = fopen( $fileName, 'w+' );
|
20 |
-
|
21 |
-
if( !$file ) :
|
22 |
-
|
23 |
-
return RM_Status::set( 'error', __( 'Could not create export file, please check plugin folder permissions', 'responsive-menu' ) );
|
24 |
-
|
25 |
-
endif;
|
26 |
-
|
27 |
-
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
|
28 |
-
$xml .= '<RMOptions>';
|
29 |
-
|
30 |
-
foreach( ResponsiveMenu::getOptions() as $option_key => $option_val ) :
|
31 |
-
|
32 |
-
$xml .= '<' . $option_key . '>' . base64_encode( $option_val ) . '</' . $option_key . '>';
|
33 |
-
|
34 |
-
endforeach;
|
35 |
-
|
36 |
-
$xml .= '</RMOptions>';
|
37 |
-
|
38 |
-
fwrite( $file, $xml );
|
39 |
-
fclose( $file );
|
40 |
-
|
41 |
-
$link = RM_Registry::get( 'config', 'plugin_base_uri' ) . 'public/export/export.xml';
|
42 |
-
|
43 |
-
RM_Status::set( 'updated', '<a href="' . $link . '">' . __( 'You can download your exported file by clicking here', 'responsive-menu' ) . '</a>' );
|
44 |
-
|
45 |
-
|
46 |
-
}
|
47 |
-
|
48 |
-
|
49 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Import.php
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Import {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Function to get data from imported XML file
|
7 |
-
*
|
8 |
-
* @return file xml
|
9 |
-
* @added 2.2
|
10 |
-
*/
|
11 |
-
|
12 |
-
static function getData( $file ) {
|
13 |
-
|
14 |
-
if( !is_admin() ) exit();
|
15 |
-
|
16 |
-
if( !$file['tmp_name'] )
|
17 |
-
return RM_Status::set( 'error', __( 'No Import File Attached', 'responsive-menu' ) );
|
18 |
-
|
19 |
-
if( $file['type'] != 'text/xml' )
|
20 |
-
return RM_Status::set( 'error', __( 'Incorrect Import File Format', 'responsive-menu' ) );
|
21 |
-
|
22 |
-
if( $file['size'] > 500000 )
|
23 |
-
return RM_Status::set( 'error', __( 'Import File Too Large', 'responsive-menu' ) );
|
24 |
-
|
25 |
-
if( !is_uploaded_file( $file['tmp_name'] ) )
|
26 |
-
return RM_Status::set( 'error', __( 'Import File Not Valid', 'responsive-menu' ) );
|
27 |
-
|
28 |
-
$data = file_get_contents( $file['tmp_name'] );
|
29 |
-
|
30 |
-
$xml = simplexml_load_string( $data );
|
31 |
-
$json = json_encode( $xml );
|
32 |
-
$array = json_decode( $json, TRUE );
|
33 |
-
$decoded = array();
|
34 |
-
|
35 |
-
foreach( $array as $key => $val ) :
|
36 |
-
/* Need to JSON Decode HTML Shapes */
|
37 |
-
if( $key == 'RMArShpA' || $key == 'RMArShpI' ) :
|
38 |
-
$decoded[$key] = is_array( $val ) ? null : json_decode( base64_decode( $val ) );
|
39 |
-
else :
|
40 |
-
$decoded[$key] = is_array( $val ) ? null : base64_decode( $val );
|
41 |
-
endif;
|
42 |
-
endforeach;
|
43 |
-
|
44 |
-
return $decoded;
|
45 |
-
|
46 |
-
|
47 |
-
}
|
48 |
-
|
49 |
-
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Input.php
DELETED
@@ -1,82 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Input {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Function to get all Input values
|
8 |
-
*
|
9 |
-
* @param string $name
|
10 |
-
* @return array
|
11 |
-
* @added 2.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function all( $name = null ) {
|
15 |
-
|
16 |
-
|
17 |
-
$arrays = array_merge( $_POST, $_GET );
|
18 |
-
|
19 |
-
return $name ? $arrays[$name] : $arrays;
|
20 |
-
|
21 |
-
|
22 |
-
}
|
23 |
-
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Function to get only post values
|
27 |
-
*
|
28 |
-
* @param string $name
|
29 |
-
* @return array
|
30 |
-
* @added 2.0
|
31 |
-
*/
|
32 |
-
|
33 |
-
static function post( $name = null ) {
|
34 |
-
|
35 |
-
if( $name )
|
36 |
-
return $name && isset( $_POST[$name] ) ? $_POST[$name] : false;
|
37 |
-
else
|
38 |
-
return $_POST;
|
39 |
-
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Function to get only get values
|
45 |
-
*
|
46 |
-
* @param string $name
|
47 |
-
* @return array
|
48 |
-
* @added 2.0
|
49 |
-
*/
|
50 |
-
|
51 |
-
static function get( $name = null ) {
|
52 |
-
|
53 |
-
|
54 |
-
if( $name )
|
55 |
-
return $name && isset( $_GET[$name] ) ? $_GET[$name] : false;
|
56 |
-
else
|
57 |
-
return $_GET;
|
58 |
-
|
59 |
-
|
60 |
-
}
|
61 |
-
|
62 |
-
/**
|
63 |
-
* Function to get only file values
|
64 |
-
*
|
65 |
-
* @param string $name
|
66 |
-
* @return array
|
67 |
-
* @added 2.0
|
68 |
-
*/
|
69 |
-
|
70 |
-
static function file( $name = null ) {
|
71 |
-
|
72 |
-
|
73 |
-
if( $name )
|
74 |
-
return $name && isset( $_FILES[$name] ) ? $_FILES[$name] : false;
|
75 |
-
else
|
76 |
-
return $_FILES;
|
77 |
-
|
78 |
-
|
79 |
-
}
|
80 |
-
|
81 |
-
|
82 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/MenuWalker.php
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_MenuWalker extends Walker_Nav_Menu {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Added for potentially using a Menu Walker in future
|
8 |
-
* if needed.
|
9 |
-
*
|
10 |
-
* @return null
|
11 |
-
* @added 2.2
|
12 |
-
*/
|
13 |
-
|
14 |
-
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Registry.php
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Registry {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Base array that holds all our further registry key => val pairs
|
7 |
-
*
|
8 |
-
* @param array $registry
|
9 |
-
* @added 2.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
static $registry;
|
13 |
-
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Function to Get Registry values
|
17 |
-
*
|
18 |
-
* @param array $array
|
19 |
-
* @param string $val
|
20 |
-
* @return array
|
21 |
-
* @added 2.0
|
22 |
-
*/
|
23 |
-
|
24 |
-
public static function get( $array, $val = null ) {
|
25 |
-
|
26 |
-
|
27 |
-
return !$val ? self::$registry[$array] : self::$registry[$array][$val];
|
28 |
-
|
29 |
-
|
30 |
-
}
|
31 |
-
|
32 |
-
|
33 |
-
/**
|
34 |
-
* Function to Set Registry values
|
35 |
-
*
|
36 |
-
* @param string $key
|
37 |
-
* @param mixed $val
|
38 |
-
* @return null
|
39 |
-
* @added 2.0
|
40 |
-
*/
|
41 |
-
|
42 |
-
public static function set( $key, $val ) {
|
43 |
-
|
44 |
-
|
45 |
-
self::$registry[$key] = $val;
|
46 |
-
|
47 |
-
|
48 |
-
}
|
49 |
-
|
50 |
-
|
51 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/ResponsiveMenu.php
DELETED
@@ -1,144 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class ResponsiveMenu {
|
5 |
-
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Main Construct for the Whole Application
|
9 |
-
* Sets Registry and Default Values (if none present)
|
10 |
-
*
|
11 |
-
* @return null
|
12 |
-
* @added 2.0
|
13 |
-
*/
|
14 |
-
|
15 |
-
public function __construct() {
|
16 |
-
|
17 |
-
|
18 |
-
if( !get_option( 'RMVer' ) ) :
|
19 |
-
add_option( 'RMVer', RM_Registry::get( 'config', 'current_version' ) );
|
20 |
-
endif;
|
21 |
-
|
22 |
-
if( !get_option( 'RMOptions' ) ) :
|
23 |
-
add_option( 'RMOptions', RM_Registry::get( 'defaults' ) );
|
24 |
-
endif;
|
25 |
-
|
26 |
-
RM_Registry::set( 'options', get_option( 'RMOptions' ) );
|
27 |
-
RM_Registry::set( 'version', get_option( 'RMVer' ) );
|
28 |
-
|
29 |
-
|
30 |
-
}
|
31 |
-
|
32 |
-
|
33 |
-
/**
|
34 |
-
* The main application run function, this sets up all the magic and grunt
|
35 |
-
* work of the application, firing off all the different controllers.
|
36 |
-
*
|
37 |
-
* @return null
|
38 |
-
* @added 2.0
|
39 |
-
*/
|
40 |
-
|
41 |
-
public function run() {
|
42 |
-
|
43 |
-
|
44 |
-
RM_InstallController::prepare();
|
45 |
-
RM_UpgradeController::upgrade();
|
46 |
-
RM_GlobalController::prepare();
|
47 |
-
RM_FrontController::prepare();
|
48 |
-
RM_AdminController::prepare();
|
49 |
-
RM_HTMLController::prepare();
|
50 |
-
RM_CSSController::prepare();
|
51 |
-
RM_JSController::prepare();
|
52 |
-
|
53 |
-
RM_Shortcode::prepare();
|
54 |
-
|
55 |
-
}
|
56 |
-
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Function to return all options throughout the site, it also
|
60 |
-
* automatically mixes in any default options that don't exist
|
61 |
-
* in the current version
|
62 |
-
*
|
63 |
-
* @return array
|
64 |
-
* @added 2.1
|
65 |
-
*/
|
66 |
-
|
67 |
-
static function getOptions() {
|
68 |
-
|
69 |
-
return array_merge( (array) RM_Registry::get( 'defaults' ), (array) get_option( 'RMOptions' ) );
|
70 |
-
|
71 |
-
}
|
72 |
-
|
73 |
-
|
74 |
-
/**
|
75 |
-
* Function to return individual options throughout the site, it
|
76 |
-
* automatically returns the default option if a current value
|
77 |
-
* doesn't exist in the current version
|
78 |
-
*
|
79 |
-
* @return array
|
80 |
-
* @added 2.1
|
81 |
-
*/
|
82 |
-
|
83 |
-
static function getOption( $option ) {
|
84 |
-
|
85 |
-
$options = self::getOptions();
|
86 |
-
|
87 |
-
if( isset( $options[$option] ) )
|
88 |
-
return $options[$option];
|
89 |
-
|
90 |
-
return RM_Registry::get( 'defaults', $option );
|
91 |
-
|
92 |
-
}
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Function to return if there are created menus in the system
|
96 |
-
*
|
97 |
-
* @return bool
|
98 |
-
* @added 2.3
|
99 |
-
*/
|
100 |
-
|
101 |
-
static function hasMenus() {
|
102 |
-
|
103 |
-
if( count( get_terms( 'nav_menu' ) ) > 0 )
|
104 |
-
return true;
|
105 |
-
|
106 |
-
return false;
|
107 |
-
|
108 |
-
}
|
109 |
-
|
110 |
-
/**
|
111 |
-
* Function to return currently created menus in the system
|
112 |
-
*
|
113 |
-
* @return object
|
114 |
-
* @added 2.3
|
115 |
-
*/
|
116 |
-
|
117 |
-
static function getMenus() {
|
118 |
-
|
119 |
-
return get_terms( 'nav_menu' );
|
120 |
-
|
121 |
-
}
|
122 |
-
|
123 |
-
/*
|
124 |
-
* Function to return current theme location menus in the system
|
125 |
-
*
|
126 |
-
* @return object
|
127 |
-
* @added 2.6 Mkdgs
|
128 |
-
*/
|
129 |
-
static function getMenusLocations() {
|
130 |
-
|
131 |
-
$menus = get_registered_nav_menus();
|
132 |
-
$r = array();
|
133 |
-
|
134 |
-
foreach ( $menus as $location => $description ) {
|
135 |
-
$r[] = $o = new stdClass;
|
136 |
-
$o->location = $location;
|
137 |
-
$o->description = $description;
|
138 |
-
}
|
139 |
-
|
140 |
-
return $r;
|
141 |
-
|
142 |
-
}
|
143 |
-
|
144 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Shortcode.php
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Shortcode {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Function to set a new status in the system
|
7 |
-
*
|
8 |
-
* @param string $type
|
9 |
-
* @param string $text
|
10 |
-
* @return null
|
11 |
-
* @added 2.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function prepare() {
|
15 |
-
|
16 |
-
|
17 |
-
if( ResponsiveMenu::getOption( 'RMShortcode' ) )
|
18 |
-
add_shortcode( 'responsive-menu', array( 'RM_HTMLController', 'display' ) );
|
19 |
-
|
20 |
-
|
21 |
-
}
|
22 |
-
|
23 |
-
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Status.php
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Status {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Static Array that holds all the current system statuses
|
7 |
-
*
|
8 |
-
* @param array $status
|
9 |
-
* @added 2.0
|
10 |
-
*/
|
11 |
-
|
12 |
-
protected static $status = array();
|
13 |
-
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Function to set a new status in the system
|
17 |
-
*
|
18 |
-
* @param string $type
|
19 |
-
* @param string $text
|
20 |
-
* @return null
|
21 |
-
* @added 2.0
|
22 |
-
*/
|
23 |
-
|
24 |
-
static function set( $type, $text ) {
|
25 |
-
|
26 |
-
|
27 |
-
array_push( self::$status, array( $type, $text ) );
|
28 |
-
|
29 |
-
|
30 |
-
}
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Function to retrieve all current statuses in the system
|
34 |
-
*
|
35 |
-
* @return array
|
36 |
-
* @added 2.0
|
37 |
-
*/
|
38 |
-
|
39 |
-
static function get() {
|
40 |
-
|
41 |
-
|
42 |
-
return self::$status;
|
43 |
-
|
44 |
-
|
45 |
-
}
|
46 |
-
|
47 |
-
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/Transient.php
DELETED
@@ -1,89 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_Transient {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Function to get named cached transient menu
|
7 |
-
*
|
8 |
-
* @param string $name
|
9 |
-
* @return string
|
10 |
-
* @added 2.3
|
11 |
-
* @edited 2.4 - Added option to use transient caching
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function getTransientMenu( $data ) {
|
15 |
-
|
16 |
-
$Transient = ResponsiveMenu::getOption( 'RMUseTran' );
|
17 |
-
|
18 |
-
if( $Transient ) :
|
19 |
-
|
20 |
-
$cachedKey = $data['RM'] . '_' . get_current_blog_id();
|
21 |
-
$cachedMenu = get_transient( $cachedKey );
|
22 |
-
|
23 |
-
else :
|
24 |
-
|
25 |
-
$cachedMenu = false;
|
26 |
-
|
27 |
-
endif;
|
28 |
-
|
29 |
-
if( $cachedMenu === false ) :
|
30 |
-
|
31 |
-
$cachedMenu = self::createTransientMenu( $data );
|
32 |
-
|
33 |
-
if( $Transient )
|
34 |
-
set_transient( $cachedKey, $cachedMenu );
|
35 |
-
|
36 |
-
endif;
|
37 |
-
|
38 |
-
return $cachedMenu;
|
39 |
-
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* Function to create named cached transient menu
|
44 |
-
*
|
45 |
-
* @param string $name
|
46 |
-
* @return array
|
47 |
-
* @added 2.3
|
48 |
-
*/
|
49 |
-
|
50 |
-
static function createTransientMenu( $data ) {
|
51 |
-
if ( $data['RMThemeLocation'] ) { // if theme_location is used, menu is no used
|
52 |
-
$data['RM'] = null;
|
53 |
-
}
|
54 |
-
$cachedMenu = wp_nav_menu( array(
|
55 |
-
'theme_location' => $data['RMThemeLocation'],
|
56 |
-
'menu' => $data['RM'],
|
57 |
-
'menu_class' => 'responsive-menu',
|
58 |
-
'depth' => $data['RMDepth'] ,
|
59 |
-
'walker' => ( !empty( $data['RMWalker'] ) ) ? new $data['RMWalker'] : '', // Add by Mkdgs
|
60 |
-
'echo' => false
|
61 |
-
)
|
62 |
-
);
|
63 |
-
|
64 |
-
return $cachedMenu;
|
65 |
-
|
66 |
-
}
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Function to clear all transient menus
|
70 |
-
*
|
71 |
-
* @return null
|
72 |
-
* @added 2.3
|
73 |
-
*/
|
74 |
-
|
75 |
-
static function clearTransientMenus() {
|
76 |
-
|
77 |
-
if( ResponsiveMenu::hasMenus() ) :
|
78 |
-
|
79 |
-
foreach( ResponsiveMenu::getMenus() as $menu ) :
|
80 |
-
|
81 |
-
delete_transient( $menu->slug . '_' . get_current_blog_id() );
|
82 |
-
|
83 |
-
endforeach;
|
84 |
-
|
85 |
-
endif;
|
86 |
-
|
87 |
-
}
|
88 |
-
|
89 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/library/responsive-menu/View.php
DELETED
@@ -1,96 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_View {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Create a new view for display throughout the application
|
8 |
-
* Users .phtml files found in the app/views folder
|
9 |
-
*
|
10 |
-
* @param string $page
|
11 |
-
* @param mixed $data
|
12 |
-
* @return null
|
13 |
-
* @added 2.0
|
14 |
-
*/
|
15 |
-
|
16 |
-
static function make( $page, $data ) {
|
17 |
-
|
18 |
-
|
19 |
-
require RM_Registry::get( 'config', 'plugin_base_dir' ) . '/app/views/' . str_replace( '.', '/', $page ) . '.phtml';
|
20 |
-
|
21 |
-
|
22 |
-
}
|
23 |
-
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Function to format and display the status bar in the admin pages
|
27 |
-
*
|
28 |
-
* @param array $status
|
29 |
-
* @return string
|
30 |
-
* @added 2.0
|
31 |
-
*/
|
32 |
-
|
33 |
-
static function statusBar( $status ) {
|
34 |
-
|
35 |
-
|
36 |
-
$message = null;
|
37 |
-
|
38 |
-
foreach( $status as $stati ) :
|
39 |
-
|
40 |
-
$message .= '<div id="message" class="' . $stati[0] . ' below-h2 cookieBannerSuccess">';
|
41 |
-
$message .= '<p>' . $stati[1] . '</p>';
|
42 |
-
$message .= '</div>';
|
43 |
-
|
44 |
-
endforeach;
|
45 |
-
|
46 |
-
return $message;
|
47 |
-
|
48 |
-
|
49 |
-
}
|
50 |
-
|
51 |
-
|
52 |
-
/**
|
53 |
-
* Function to format and display the search bar in the main menu
|
54 |
-
*
|
55 |
-
* @return string
|
56 |
-
* @added 2.0
|
57 |
-
*/
|
58 |
-
|
59 |
-
static function searchBar() {
|
60 |
-
|
61 |
-
/* Added for WPML Compatibility in 2.2
|
62 |
-
* Thanks to miguelcortereal for this */
|
63 |
-
|
64 |
-
$action = function_exists( 'icl_get_home_url' ) ? icl_get_home_url() : get_home_url(); ?>
|
65 |
-
|
66 |
-
<form action="<?php echo $action; ?>" id="responsiveSearch" method="get" role="search">
|
67 |
-
|
68 |
-
<input type="search" name="s" value="" placeholder="<?php _e( 'Search', 'responsive-menu' ); ?>" id="responsiveSearchInput">
|
69 |
-
<input type="submit" id="responsiveSearchSubmit" />
|
70 |
-
|
71 |
-
</form>
|
72 |
-
|
73 |
-
<?php
|
74 |
-
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
-
/**
|
79 |
-
* Function to format and display the additional content in the main menu
|
80 |
-
*
|
81 |
-
* @return string
|
82 |
-
* @added 2.0
|
83 |
-
*/
|
84 |
-
|
85 |
-
static function additionalContent( $html ) { ?>
|
86 |
-
|
87 |
-
<div id="rm-additional-content">
|
88 |
-
<?php echo do_shortcode( $html ); ?>
|
89 |
-
</div>
|
90 |
-
|
91 |
-
<?php
|
92 |
-
|
93 |
-
}
|
94 |
-
|
95 |
-
|
96 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/models/AdminModel.php
DELETED
@@ -1,386 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_AdminModel extends RM_BaseModel {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Saves all the data from the admin page to the database
|
8 |
-
*
|
9 |
-
* @param array $data
|
10 |
-
* @return null
|
11 |
-
* @added 1.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static public function save( $data ) {
|
15 |
-
|
16 |
-
// Initialise Variables Correctly
|
17 |
-
|
18 |
-
$RM = isset($data['RM']) ? $data['RM'] : RM_Registry::get( 'defaults', 'RM' );
|
19 |
-
|
20 |
-
$RMTitle = isset($data['RMTitle']) ? $data['RMTitle'] : RM_Registry::get( 'defaults', 'RMTitle' );
|
21 |
-
|
22 |
-
$RMBreak = $data['RMBreak'] ? $data['RMBreak'] : RM_Registry::get( 'defaults', 'RMBreak' );
|
23 |
-
|
24 |
-
$RMDepth = isset($data['RMDepth']) ? $data['RMDepth'] : RM_Registry::get( 'defaults', 'RMDepth' );
|
25 |
-
|
26 |
-
$RMTop = isset($data['RMTop']) ? $data['RMTop'] : RM_Registry::get( 'defaults', 'RMTop' );
|
27 |
-
|
28 |
-
$RMRight = isset($data['RMRight']) ? $data['RMRight'] : RM_Registry::get( 'defaults', 'RMRight' );
|
29 |
-
|
30 |
-
$RMCss = isset($data['RMCss']) ? $data['RMCss'] : RM_Registry::get( 'defaults', 'RMCss' );
|
31 |
-
|
32 |
-
$RMLineCol = !empty($data['RMLineCol']) ? $data['RMLineCol'] : RM_Registry::get( 'defaults', 'RMLineCol' );
|
33 |
-
|
34 |
-
$RMClickBkg = !empty($data['RMClickBkg']) ? $data['RMClickBkg'] : RM_Registry::get( 'defaults', 'RMClickBkg' );
|
35 |
-
|
36 |
-
$RMClickTitle = isset($data['RMClickTitle']) ? $data['RMClickTitle'] : RM_Registry::get( 'defaults', 'RMClickTitle' );
|
37 |
-
|
38 |
-
$RMBkgTran = isset($data['RMBkgTran']) ? $data['RMBkgTran'] : false;
|
39 |
-
|
40 |
-
$RMPos = isset($data['RMPos']) ? $data['RMPos'] : RM_Registry::get( 'defaults', 'RMPos' );
|
41 |
-
|
42 |
-
$RMImage = isset($data['RMImage']) ? $data['RMImage'] : RM_Registry::get( 'defaults', 'RMImage' );
|
43 |
-
|
44 |
-
$RMWidth = $data['RMWidth'] ? $data['RMWidth'] : RM_Registry::get( 'defaults', 'RMWidth' );
|
45 |
-
|
46 |
-
$RMBkg = !empty($data['RMBkg']) ? $data['RMBkg'] : RM_Registry::get( 'defaults', 'RMBkg' );
|
47 |
-
|
48 |
-
$RMBkgHov = !empty($data['RMBkgHov']) ? $data['RMBkgHov'] : RM_Registry::get( 'defaults', 'RMBkgHov' );
|
49 |
-
|
50 |
-
$RMTitleCol = !empty($data['RMTitleCol']) ? $data['RMTitleCol'] : RM_Registry::get( 'defaults', 'RMTitleCol' );
|
51 |
-
|
52 |
-
$RMTextCol = !empty($data['RMTextCol']) ? $data['RMTextCol'] : RM_Registry::get( 'defaults', 'RMTextCol' );
|
53 |
-
|
54 |
-
$RMBorCol = !empty($data['RMBorCol']) ? $data['RMBorCol'] : RM_Registry::get( 'defaults', 'RMBorCol' );
|
55 |
-
|
56 |
-
$RMTextColHov = !empty($data['RMTextColHov']) ? $data['RMTextColHov'] : RM_Registry::get( 'defaults', 'RMTextColHov' );
|
57 |
-
|
58 |
-
$RMTitleColHov = !empty($data['RMTitleColHov']) ? $data['RMTitleColHov'] : RM_Registry::get( 'defaults', 'RMTitleColHov' );
|
59 |
-
|
60 |
-
/* Added in 1.6 */
|
61 |
-
|
62 |
-
$RMAnim = isset($data['RMAnim']) ? $data['RMAnim'] : RM_Registry::get( 'defaults', 'RMAnim' );
|
63 |
-
|
64 |
-
$RMPushCSS = isset($data['RMPushCSS']) ? $data['RMPushCSS'] : RM_Registry::get( 'defaults', 'RMPushCSS' );
|
65 |
-
|
66 |
-
$RMTitleBkg = !empty($data['RMTitleBkg']) ? $data['RMTitleBkg'] : RM_Registry::get( 'defaults', 'RMTitleBkg' );
|
67 |
-
|
68 |
-
$RMFont = isset($data['RMFont']) ? $data['RMFont'] : RM_Registry::get( 'defaults', 'RMFont' );
|
69 |
-
|
70 |
-
$RMFontSize = $data['RMFontSize'] ? $data['RMFontSize'] : RM_Registry::get( 'defaults', 'RMFontSize' );
|
71 |
-
|
72 |
-
$RMTitleSize = $data['RMTitleSize'] ? $data['RMTitleSize'] : RM_Registry::get( 'defaults', 'RMTitleSize' );
|
73 |
-
|
74 |
-
$RMBtnSize = $data['RMBtnSize'] ? $data['RMBtnSize'] : RM_Registry::get( 'defaults', 'RMBtnSize' );
|
75 |
-
|
76 |
-
$RMCurBkg = !empty($data['RMCurBkg']) ? $data['RMCurBkg'] : RM_Registry::get( 'defaults', 'RMCurBkg' );
|
77 |
-
|
78 |
-
$RMCurCol = !empty($data['RMCurCol']) ? $data['RMCurCol'] : RM_Registry::get( 'defaults', 'RMCurCol' );
|
79 |
-
|
80 |
-
$RMAnimSpd = $data['RMAnimSpd'] !== false ? $data['RMAnimSpd'] : RM_Registry::get( 'defaults', 'RMAnimSpd' );
|
81 |
-
|
82 |
-
/* Added in 1.7 */
|
83 |
-
|
84 |
-
$RMTranSpd = $data['RMTranSpd'] ? $data['RMTranSpd'] : RM_Registry::get( 'defaults', 'RMTranSpd' );
|
85 |
-
|
86 |
-
$RMTxtAlign = isset($data['RMTxtAlign']) ? $data['RMTxtAlign'] : RM_Registry::get( 'defaults', 'RMTxtAlign' );
|
87 |
-
|
88 |
-
$RMSearch = isset($data['RMSearch']) ? $data['RMSearch'] : RM_Registry::get( 'defaults', 'RMSearch' );
|
89 |
-
|
90 |
-
$RMExpand = isset($data['RMExpand']) ? $data['RMExpand'] : RM_Registry::get( 'defaults', 'RMExpand' );
|
91 |
-
|
92 |
-
$RMLinkHeight = $data['RMLinkHeight'] ? $data['RMLinkHeight'] : RM_Registry::get( 'defaults', 'RMLinkHeight' );
|
93 |
-
|
94 |
-
/* Added in 1.8 */
|
95 |
-
|
96 |
-
$RMExternal = isset( $data['RMExternal'] ) ? $data['RMExternal'] : RM_Registry::get( 'defaults', 'RMExternal' );
|
97 |
-
|
98 |
-
$RMSide = isset( $data['RMSide'] ) ? $data['RMSide'] : RM_Registry::get( 'defaults', 'RMSide' );
|
99 |
-
|
100 |
-
/* Added in 1.9 */
|
101 |
-
|
102 |
-
$RMFooter = isset( $data['RMFooter'] ) ? $data['RMFooter'] : RM_Registry::get( 'defaults', 'RMFooter' );
|
103 |
-
|
104 |
-
$RMClickImg = isset( $data['RMClickImg'] ) ? $data['RMClickImg'] : RM_Registry::get( 'defaults', 'RMClickImg' );
|
105 |
-
|
106 |
-
$RMMinify = isset( $data['RMMinify'] ) ? $data['RMMinify'] : RM_Registry::get( 'defaults', 'RMMinify' );
|
107 |
-
|
108 |
-
$RMClickClose = isset( $data['RMClickClose'] ) ? $data['RMClickClose'] : RM_Registry::get( 'defaults', 'RMClickClose' );
|
109 |
-
|
110 |
-
$RMRemImp = isset( $data['RMRemImp'] ) ? $data['RMRemImp'] : RM_Registry::get( 'defaults', 'RMRemImp' );
|
111 |
-
|
112 |
-
$RMX = isset( $data['RMX'] ) ? $data['RMX'] : RM_Registry::get( 'defaults', 'RMX' );
|
113 |
-
|
114 |
-
$RMMinWidth = isset( $data['RMMinWidth'] ) ? $data['RMMinWidth'] : RM_Registry::get( 'defaults', 'RMMinWidth' );
|
115 |
-
|
116 |
-
/* Added in 2.0 */
|
117 |
-
|
118 |
-
$RMMaxWidth = isset( $data['RMMaxWidth'] ) ? $data['RMMaxWidth'] : RM_Registry::get( 'defaults', 'RMMaxWidth' );
|
119 |
-
|
120 |
-
$RMExpandPar = isset( $data['RMExpandPar'] ) ? $data['RMExpandPar'] : false;
|
121 |
-
|
122 |
-
$RMIgnParCli = isset( $data['RMIgnParCli'] ) ? $data['RMIgnParCli'] : RM_Registry::get( 'defaults', 'RMIgnParCli' );
|
123 |
-
|
124 |
-
$RMCliToClo = isset( $data['RMCliToClo'] ) ? $data['RMCliToClo'] : RM_Registry::get( 'defaults', 'RMCliToClo' );
|
125 |
-
|
126 |
-
$RMSearchPos = isset( $data['RMSearchPos'] ) ? $data['RMSearchPos'] : RM_Registry::get( 'defaults', 'RMSearchPos' );
|
127 |
-
|
128 |
-
$RMTitleLink = isset( $data['RMTitleLink'] ) ? $data['RMTitleLink'] : RM_Registry::get( 'defaults', 'RMTitleLink' );
|
129 |
-
|
130 |
-
$RMTitleLoc = isset( $data['RMTitleLoc'] ) ? $data['RMTitleLoc'] : RM_Registry::get( 'defaults', 'RMTitleLoc' );
|
131 |
-
|
132 |
-
$RMHtml = isset( $data['RMHtml'] ) ? $data['RMHtml'] : RM_Registry::get( 'defaults', 'RMHtml' );
|
133 |
-
|
134 |
-
$RMHtmlLoc = isset( $data['RMHtmlLoc'] ) ? $data['RMHtmlLoc'] : RM_Registry::get( 'defaults', 'RMHtmlLoc' );
|
135 |
-
|
136 |
-
/* Added in 2.1 */
|
137 |
-
|
138 |
-
$RMShortcode = isset( $data['RMShortcode'] ) ? $data['RMShortcode'] : RM_Registry::get( 'defaults', 'RMShortcode' );
|
139 |
-
|
140 |
-
/* Added in 2.2 */
|
141 |
-
|
142 |
-
$RMLineHeight = isset( $data['RMLineHeight'] ) ? $data['RMLineHeight'] : RM_Registry::get( 'defaults', 'RMLineHeight' );
|
143 |
-
|
144 |
-
$RMLineWidth = isset( $data['RMLineWidth'] ) ? $data['RMLineWidth'] : RM_Registry::get( 'defaults', 'RMLineWidth' );
|
145 |
-
|
146 |
-
$RMLineMargin = isset( $data['RMLineMargin'] ) ? $data['RMLineMargin'] : RM_Registry::get( 'defaults', 'RMLineMargin' );
|
147 |
-
|
148 |
-
$RMClickImgClicked = isset( $data['RMClickImgClicked'] ) ? $data['RMClickImgClicked'] : RM_Registry::get( 'defaults', 'RMClickImgClicked' );
|
149 |
-
|
150 |
-
$RMAccordion = isset( $data['RMAccordion'] ) ? $data['RMAccordion'] : RM_Registry::get( 'defaults', 'RMAccordion' );
|
151 |
-
|
152 |
-
$RMArShpA = isset( $data['RMArShpA'] ) ? $data['RMArShpA'] : RM_Registry::get( 'defaults', 'RMArShpA' );
|
153 |
-
|
154 |
-
$RMArShpI = isset( $data['RMArShpI'] ) ? $data['RMArShpI'] : RM_Registry::get( 'defaults', 'RMArShpI' );
|
155 |
-
|
156 |
-
$RMArImgA = isset( $data['RMArImgA'] ) ? $data['RMArImgA'] : RM_Registry::get( 'defaults', 'RMArImgA' );
|
157 |
-
|
158 |
-
$RMArImgI = isset( $data['RMArImgI'] ) ? $data['RMArImgI'] : RM_Registry::get( 'defaults', 'RMArImgI' );
|
159 |
-
|
160 |
-
/* Added in 2.3 */
|
161 |
-
|
162 |
-
$RMTrigger = isset( $data['RMTrigger'] ) && !empty( $data['RMTrigger'] ) ? $data['RMTrigger'] : RM_Registry::get( 'defaults', 'RMTrigger' );
|
163 |
-
|
164 |
-
$RMPushBtn = isset( $data['RMPushBtn'] ) ? $data['RMPushBtn'] : RM_Registry::get( 'defaults', 'RMPushBtn' );
|
165 |
-
|
166 |
-
$RMCurBkgHov = !empty($data['RMCurBkgHov']) ? $data['RMCurBkgHov'] : RM_Registry::get( 'defaults', 'RMCurBkgHov' );
|
167 |
-
|
168 |
-
$RMCurColHov = !empty($data['RMCurColHov']) ? $data['RMCurColHov'] : RM_Registry::get( 'defaults', 'RMCurColHov' );
|
169 |
-
|
170 |
-
/* Add by MKDGS */
|
171 |
-
$RMWalker = isset( $data['RMWalker'] ) ? $data['RMWalker'] : RM_Registry::get( 'defaults', 'RMWalker' );
|
172 |
-
|
173 |
-
/* Added in 2.4 */
|
174 |
-
|
175 |
-
$RMUseTran = isset( $data['RMUseTran'] ) ? $data['RMUseTran'] : RM_Registry::get( 'defaults', 'RMUseTran' );
|
176 |
-
|
177 |
-
$RMLoc = isset( $data['RMLoc'] ) ? $data['RMLoc'] : RM_Registry::get( 'defaults', 'RMLoc' );
|
178 |
-
|
179 |
-
/* Added in 2.6 Mkdgs */
|
180 |
-
|
181 |
-
$RMThemeLocation = isset( $data['RMThemeLocation'] ) ? $data['RMThemeLocation'] : RM_Registry::get( 'defaults', 'RMThemeLocation' );
|
182 |
-
|
183 |
-
/* Added in 2.8.7 */
|
184 |
-
|
185 |
-
$RMClickTitlePos = isset( $data['RMClickTitlePos'] ) ? $data['RMClickTitlePos'] : RM_Registry::get( 'defaults', 'RMClickTitlePos' );
|
186 |
-
|
187 |
-
$RMClickTitleHeight = isset( $data['RMClickTitleHeight'] ) ? $data['RMClickTitleHeight'] : RM_Registry::get( 'defaults', 'RMClickTitleHeight' );
|
188 |
-
|
189 |
-
$optionsArray = array(
|
190 |
-
|
191 |
-
// Filter Input Correctly
|
192 |
-
|
193 |
-
'RM' => self::Filter($RM),
|
194 |
-
|
195 |
-
'RMBreak' => intval($RMBreak),
|
196 |
-
|
197 |
-
'RMDepth' => intval($RMDepth),
|
198 |
-
|
199 |
-
'RMTop' => intval($RMTop),
|
200 |
-
|
201 |
-
'RMRight' => intval($RMRight),
|
202 |
-
|
203 |
-
'RMCss' => self::Filter($RMCss),
|
204 |
-
|
205 |
-
'RMTitle' => self::Filter($RMTitle),
|
206 |
-
|
207 |
-
'RMLineCol' => self::Filter($RMLineCol),
|
208 |
-
|
209 |
-
'RMClickBkg' => self::Filter($RMClickBkg),
|
210 |
-
|
211 |
-
'RMClickTitle' => self::Filter($RMClickTitle),
|
212 |
-
|
213 |
-
'RMBkgTran' => self::Filter($RMBkgTran),
|
214 |
-
|
215 |
-
'RMFont' => self::Filter($RMFont),
|
216 |
-
|
217 |
-
'RMPos' => self::Filter($RMPos),
|
218 |
-
|
219 |
-
'RMImage' => self::Filter($RMImage),
|
220 |
-
|
221 |
-
'RMWidth' => intval($RMWidth),
|
222 |
-
|
223 |
-
'RMBkg' => self::Filter($RMBkg),
|
224 |
-
|
225 |
-
'RMBkgHov' => self::Filter($RMBkgHov),
|
226 |
-
|
227 |
-
'RMTitleCol' => self::Filter($RMTitleCol),
|
228 |
-
|
229 |
-
'RMTextCol' => self::Filter($RMTextCol),
|
230 |
-
|
231 |
-
'RMBorCol' => self::Filter($RMBorCol),
|
232 |
-
|
233 |
-
'RMTextColHov' => self::Filter($RMTextColHov),
|
234 |
-
|
235 |
-
'RMTitleColHov' => self::Filter($RMTitleColHov),
|
236 |
-
|
237 |
-
/* Added in 1.6 */
|
238 |
-
|
239 |
-
'RMAnim' => self::Filter($RMAnim),
|
240 |
-
|
241 |
-
'RMPushCSS' => self::Filter($RMPushCSS),
|
242 |
-
|
243 |
-
'RMTitleBkg' => self::Filter( $RMTitleBkg ),
|
244 |
-
|
245 |
-
'RMFontSize' => intval( $RMFontSize ),
|
246 |
-
|
247 |
-
'RMTitleSize' => intval( $RMTitleSize ),
|
248 |
-
|
249 |
-
'RMBtnSize' => intval( $RMBtnSize ),
|
250 |
-
|
251 |
-
'RMCurBkg' => self::Filter( $RMCurBkg ),
|
252 |
-
|
253 |
-
'RMCurCol' => self::Filter( $RMCurCol ),
|
254 |
-
|
255 |
-
'RMAnimSpd' => floatval( $RMAnimSpd ),
|
256 |
-
|
257 |
-
/* Added in 1.7 */
|
258 |
-
|
259 |
-
'RMTranSpd' => floatval( $RMTranSpd ),
|
260 |
-
|
261 |
-
'RMTxtAlign' => self::Filter( $RMTxtAlign ),
|
262 |
-
|
263 |
-
'RMSearch' => self::Filter( $RMSearch ),
|
264 |
-
|
265 |
-
'RMExpand' => self::Filter( $RMExpand ),
|
266 |
-
|
267 |
-
'RMLinkHeight' => intval( $RMLinkHeight ),
|
268 |
-
|
269 |
-
/* Added in 1.8 */
|
270 |
-
|
271 |
-
'RMExternal' => self::Filter( $RMExternal ),
|
272 |
-
|
273 |
-
'RMSide' => self::Filter( $RMSide ),
|
274 |
-
|
275 |
-
/* Added in 1.9 */
|
276 |
-
|
277 |
-
'RMFooter' => self::Filter( $RMFooter ),
|
278 |
-
|
279 |
-
'RMClickImg' => self::Filter( $RMClickImg ),
|
280 |
-
|
281 |
-
'RMMinify' => self::Filter( $RMMinify ),
|
282 |
-
|
283 |
-
'RMClickClose' => self::Filter( $RMClickClose ),
|
284 |
-
|
285 |
-
'RMRemImp' => self::Filter( $RMRemImp ),
|
286 |
-
|
287 |
-
'RMX' => self::Filter( $RMX ),
|
288 |
-
|
289 |
-
'RMMinWidth' => intval( $RMMinWidth ),
|
290 |
-
|
291 |
-
/* Added in 2.0 */
|
292 |
-
|
293 |
-
'RMMaxWidth' => intval( $RMMaxWidth ),
|
294 |
-
|
295 |
-
'RMExpandPar' => self::Filter( $RMExpandPar ),
|
296 |
-
|
297 |
-
'RMIgnParCli' => self::Filter( $RMIgnParCli ),
|
298 |
-
|
299 |
-
'RMCliToClo' => self::Filter( $RMCliToClo ),
|
300 |
-
|
301 |
-
'RMSearchPos' => self::Filter( $RMSearchPos ),
|
302 |
-
|
303 |
-
'RMTitleLink' => self::Filter( $RMTitleLink ),
|
304 |
-
|
305 |
-
'RMTitleLoc' => self::Filter( $RMTitleLoc ),
|
306 |
-
|
307 |
-
'RMHtml' => self::FilterHtml( $RMHtml ),
|
308 |
-
|
309 |
-
'RMHtmlLoc' => self::Filter( $RMHtmlLoc ),
|
310 |
-
|
311 |
-
|
312 |
-
/* Added in 2.1 */
|
313 |
-
|
314 |
-
'RMShortcode' => self::Filter( $RMShortcode ),
|
315 |
-
|
316 |
-
|
317 |
-
/* Added in 2.2 */
|
318 |
-
|
319 |
-
'RMLineHeight' => intval( $RMLineHeight ),
|
320 |
-
|
321 |
-
'RMLineWidth' => intval( $RMLineWidth ),
|
322 |
-
|
323 |
-
'RMLineMargin' => intval( $RMLineMargin ),
|
324 |
-
|
325 |
-
'RMClickImgClicked' => self::Filter( $RMClickImgClicked ),
|
326 |
-
|
327 |
-
'RMAccordion' => self::Filter( $RMAccordion ),
|
328 |
-
|
329 |
-
'RMArShpA' => json_encode( $RMArShpA ),
|
330 |
-
|
331 |
-
'RMArShpI' => json_encode( $RMArShpI ),
|
332 |
-
|
333 |
-
'RMArImgA' => self::Filter( $RMArImgA ),
|
334 |
-
|
335 |
-
'RMArImgI' => self::Filter( $RMArImgI ),
|
336 |
-
|
337 |
-
|
338 |
-
/* Added in 2.3 */
|
339 |
-
|
340 |
-
'RMTrigger' => self::Filter( $RMTrigger ),
|
341 |
-
|
342 |
-
'RMPushBtn' => self::Filter( $RMPushBtn ),
|
343 |
-
|
344 |
-
'RMCurBkgHov' => self::Filter( $RMCurBkgHov ),
|
345 |
-
|
346 |
-
'RMCurColHov' => self::Filter( $RMCurColHov ),
|
347 |
-
|
348 |
-
/* Add by Mkdgs */
|
349 |
-
|
350 |
-
'RMWalker' => ( class_exists( $RMWalker ) ) ? $RMWalker : '',
|
351 |
-
|
352 |
-
/* Added in 2.4 */
|
353 |
-
|
354 |
-
'RMUseTran' => self::Filter( $RMUseTran ),
|
355 |
-
|
356 |
-
'RMLoc' => self::Filter( $RMLoc ),
|
357 |
-
|
358 |
-
/* Added in 2.6 Mkdgs */
|
359 |
-
|
360 |
-
'RMThemeLocation' => self::Filter( $RMThemeLocation ),
|
361 |
-
|
362 |
-
/* Added in 2.8.7 */
|
363 |
-
|
364 |
-
'RMClickTitlePos' => self::Filter( $RMClickTitlePos ),
|
365 |
-
|
366 |
-
'RMClickTitleHeight' => self::Filter( $RMClickTitleHeight ),
|
367 |
-
|
368 |
-
);
|
369 |
-
|
370 |
-
// Update Submitted Options
|
371 |
-
|
372 |
-
update_option( 'RMOptions', $optionsArray );
|
373 |
-
|
374 |
-
// Clear Transient Menus
|
375 |
-
|
376 |
-
RM_Transient::clearTransientMenus();
|
377 |
-
|
378 |
-
// And save the status
|
379 |
-
|
380 |
-
RM_Status::set( 'updated', __( 'You have successfully updated the Responsive Menu options', 'responsive-menu' ) );
|
381 |
-
|
382 |
-
|
383 |
-
}
|
384 |
-
|
385 |
-
|
386 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/models/BaseModel.php
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_BaseModel {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Basic Function to filter Input
|
8 |
-
*
|
9 |
-
* @param string $input
|
10 |
-
* @return string
|
11 |
-
* @added 1.0
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function Filter( $input ) {
|
15 |
-
|
16 |
-
if( is_string( $input ) )
|
17 |
-
return stripslashes( strip_tags( trim( $input ) ) );
|
18 |
-
|
19 |
-
|
20 |
-
}
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Basic Function to filter HTML allowed Input
|
24 |
-
*
|
25 |
-
* @param string $input
|
26 |
-
* @return string
|
27 |
-
* @added 1.0
|
28 |
-
*/
|
29 |
-
|
30 |
-
static function FilterHtml( $input ) {
|
31 |
-
|
32 |
-
if( is_string( $input ) )
|
33 |
-
return trim( stripslashes( $input ) );
|
34 |
-
|
35 |
-
|
36 |
-
}
|
37 |
-
|
38 |
-
|
39 |
-
/**
|
40 |
-
* Function to minify the Js and CSS files if required
|
41 |
-
*
|
42 |
-
* Parts taken from
|
43 |
-
* http://castlesblog.com/2010/august/14/php-javascript-css-minification
|
44 |
-
*
|
45 |
-
* @param string $input
|
46 |
-
* @return string
|
47 |
-
* @added 1.9
|
48 |
-
*/
|
49 |
-
|
50 |
-
static function Minify( $input ) {
|
51 |
-
|
52 |
-
|
53 |
-
/* remove comments */
|
54 |
-
$output = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $input);
|
55 |
-
|
56 |
-
/* remove tabs, spaces, newlines, etc. */
|
57 |
-
$output = str_replace(array("\r\n","\r","\n","\t",' ',' ',' '), '', $output);
|
58 |
-
|
59 |
-
/* remove other spaces before/after ; */
|
60 |
-
$output = preg_replace(array('(( )+{)','({( )+)'), '{', $output);
|
61 |
-
$output = preg_replace(array('(( )+})','(}( )+)','(;( )*})'), '}', $output);
|
62 |
-
$output = preg_replace(array('(;( )+)','(( )+;)'), ';', $output);
|
63 |
-
|
64 |
-
return $output;
|
65 |
-
|
66 |
-
|
67 |
-
}
|
68 |
-
|
69 |
-
|
70 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/models/CSSModel.php
DELETED
@@ -1,542 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_CSSModel extends RM_BaseModel {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Function to create the file to hold the CSS file
|
8 |
-
*
|
9 |
-
* @param string $css
|
10 |
-
* @return file
|
11 |
-
* @added 1.6
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function createCSSFile( $css ) {
|
15 |
-
|
16 |
-
|
17 |
-
$file = fopen( RM_Registry::get( 'config', 'plugin_data_dir' ) . '/css/responsive-menu-' . get_current_blog_id() . '.css', 'w' );
|
18 |
-
|
19 |
-
$cssFile = fwrite( $file, $css );
|
20 |
-
|
21 |
-
fclose( $file );
|
22 |
-
|
23 |
-
if( !$file )
|
24 |
-
RM_Status::set( 'error', __( 'Unable to create CSS file', 'responsive-menu' ) );
|
25 |
-
|
26 |
-
return $cssFile;
|
27 |
-
|
28 |
-
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Function to format, create and get the CSS itself
|
33 |
-
*
|
34 |
-
* @param string $args
|
35 |
-
* @return string
|
36 |
-
* @added 1.0
|
37 |
-
*/
|
38 |
-
|
39 |
-
static function getCSS( $options ) {
|
40 |
-
|
41 |
-
|
42 |
-
$important = empty( $options['RMRemImp'] ) ? ' !important;' : ';';
|
43 |
-
|
44 |
-
$position = $options['RMPos'] == 'fixed' ? 'fixed' : 'absolute';
|
45 |
-
$overflowy = $options['RMPos'] == 'fixed' ? 'overflow-y: auto;' : '';
|
46 |
-
$bottom = $options['RMPos'] == 'fixed' ? 'bottom: 0px;' : '';
|
47 |
-
|
48 |
-
$right = empty($options['RMRight']) ? '0' : $options['RMRight'];
|
49 |
-
|
50 |
-
$top = empty( $options['RMTop']) ? '0' : $options['RMTop'];
|
51 |
-
|
52 |
-
$width = empty($options['RMWidth']) ? '75' : $options['RMWidth'];
|
53 |
-
$mainBkg = empty($options['RMBkg']) ? "#43494C" : $options['RMBkg'];
|
54 |
-
$mainBkgH = empty($options['RMBkgHov']) ? "#3C3C3C" : $options['RMBkgHov'];
|
55 |
-
$font = empty($options['RMFont']) ? '' : 'font-family: ' . $options['RMFont'] . $important;
|
56 |
-
$titleCol = empty($options['RMTitleCol']) ? '#FFFFFF' : $options['RMTitleCol'];
|
57 |
-
$titleColH = empty($options['RMTitleColHov']) ? '#FFFFFF' : $options['RMTitleColHov'];
|
58 |
-
$txtCol = empty($options['RMTextCol']) ? "#FFFFFF" : $options['RMTextCol'];
|
59 |
-
$txtColH = empty($options['RMTextColHov']) ? "#FFFFFF" : $options['RMTextColHov'];
|
60 |
-
$clickCol = empty($options['RMLineCol']) ? "#FFFFFF" : $options['RMLineCol'];
|
61 |
-
$clickBkg = empty($options['RMBkgTran']) ? "background: {$options['RMClickBkg']};" : '';
|
62 |
-
$borCol = empty($options['RMBorCol']) ? "#3C3C3C" : $options['RMBorCol'];
|
63 |
-
$breakpoint = empty($options['RMBreak']) ? "600" : $options['RMBreak'];
|
64 |
-
$titleBkg = empty($options['RMTitleBkg']) ? "#43494C" : $options['RMTitleBkg'];
|
65 |
-
|
66 |
-
$fontSize = empty($options['RMFontSize']) ? 13 : $options['RMFontSize'];
|
67 |
-
$titleSize = empty($options['RMTitleSize']) ? 14 : $options['RMTitleSize'];
|
68 |
-
$btnSize = empty($options['RMBtnSize']) ? 13 : $options['RMBtnSize'];
|
69 |
-
|
70 |
-
$curBkg = empty($options['RMCurBkg']) ? $mainBkg : $options['RMCurBkg'];
|
71 |
-
$curCol = empty($options['RMCurCol']) ? $txtCol : $options['RMCurCol'];
|
72 |
-
|
73 |
-
/* Added 1.7 */
|
74 |
-
$trans = empty( $options['RMTranSpd'] ) ? 1 : $options['RMTranSpd'];
|
75 |
-
$align = empty( $options['RMTxtAlign'] ) ? 'left' : $options['RMTxtAlign'];
|
76 |
-
$linkPadding = $options['RMTxtAlign'] == 'right' ? '12px 5% 12px 0px' : '12px 0px 12px 5%';
|
77 |
-
$titlePadding = $options['RMTxtAlign'] == 'right' ? '20px 5% 20px 0px' : '20px 0px 20px 5%';
|
78 |
-
$paddingAlign = $align == 'center' ? 'left' : $align;
|
79 |
-
$height = empty( $options['RMLinkHeight'] ) ? 19 : $options['RMLinkHeight'];
|
80 |
-
$subBtnAlign = $align == 'right' ? 'left' : 'right';
|
81 |
-
|
82 |
-
/* Added 1.8 */
|
83 |
-
$side = empty( $options['RMSide'] ) ? 'left' : $options['RMSide'];
|
84 |
-
|
85 |
-
/* Added 1.9 */
|
86 |
-
$minWidth = empty( $options['RMMinWidth'] ) ? '' : 'min-width: ' . $options['RMMinWidth'] . 'px' . $important;
|
87 |
-
|
88 |
-
/* Added 2.0 */
|
89 |
-
$maxWidth = empty( $options['RMMaxWidth'] ) ? '' : 'max-width: ' . $options['RMMaxWidth'] . 'px' . $important;
|
90 |
-
|
91 |
-
switch( $options['RMSide'] ) :
|
92 |
-
case 'left' : $topRM = 'top: 0px'; $botRM = ''; break;
|
93 |
-
case 'right' : $topRM = 'top: 0px'; $botRM = ''; break;
|
94 |
-
case 'top' : $topRM = 'top: -100%'; $botRM = ''; break;
|
95 |
-
case 'bottom' : $topRM = 'top: 100%'; $botRM = 'bottom: 0px'; break;
|
96 |
-
endswitch;
|
97 |
-
|
98 |
-
switch( $side ) :
|
99 |
-
case 'left' : $pushSide = $side; $pushWidth = $width; $pushPos = 'relative'; break;
|
100 |
-
case 'right' : $pushSide = $side; $pushWidth = $width; $pushPos = 'relative'; break;
|
101 |
-
case 'top' : $pushSide = 'top'; $pushWidth = '100'; $pushPos = 'relative'; break;
|
102 |
-
case 'bottom' : $pushSide = 'bottom'; $pushWidth = '-100'; $pushPos = 'relative'; break;
|
103 |
-
default : $pushSide = $side; $pushWidth = $width; break;
|
104 |
-
endswitch;
|
105 |
-
|
106 |
-
/* Added 2.2 */
|
107 |
-
|
108 |
-
$lineHeight = empty( $options['RMLineHeight'] ) ? 6 : $options['RMLineHeight'];
|
109 |
-
$lineWidth = empty( $options['RMLineWidth'] ) ? 33 : $options['RMLineWidth'];
|
110 |
-
$lineMargin = empty( $options['RMLineMargin'] ) ? 6 : $options['RMLineMargin'];
|
111 |
-
$clickMenuHeight = ( $lineMargin * 2 ) + ( $lineHeight * 3 );
|
112 |
-
|
113 |
-
/* Added 2.3 */
|
114 |
-
|
115 |
-
$curBkgHov = empty( $options['RMCurBkgHov'] ) ? $mainBkg : $options['RMCurBkgHov'];
|
116 |
-
$curColHov = empty( $options['RMCurColHov'] ) ? $txtCol : $options['RMCurColHov'];
|
117 |
-
|
118 |
-
/* Added 2.5 */
|
119 |
-
|
120 |
-
$location = $options['RMLoc'];
|
121 |
-
|
122 |
-
/*
|
123 |
-
|--------------------------------------------------------------------------
|
124 |
-
| Initialise Output
|
125 |
-
|--------------------------------------------------------------------------
|
126 |
-
|
|
127 |
-
| Initialise the JavaScript output variable ready for appending
|
128 |
-
|
|
129 |
-
*/
|
130 |
-
|
131 |
-
$css = null;
|
132 |
-
|
133 |
-
/*
|
134 |
-
|--------------------------------------------------------------------------
|
135 |
-
| Strip Tags If Needed
|
136 |
-
|--------------------------------------------------------------------------
|
137 |
-
|
|
138 |
-
| Determine whether to use the <style> tags
|
139 |
-
|
|
140 |
-
*/
|
141 |
-
|
142 |
-
$css .= $options['RMExternal'] ? '' : '<style>';
|
143 |
-
|
144 |
-
|
145 |
-
$css .= "
|
146 |
-
|
147 |
-
#responsive-menu .appendLink,
|
148 |
-
#responsive-menu .responsive-menu li a,
|
149 |
-
#responsive-menu #responsive-menu-title a,
|
150 |
-
#responsive-menu .responsive-menu,
|
151 |
-
#responsive-menu div,
|
152 |
-
#responsive-menu .responsive-menu li,
|
153 |
-
#responsive-menu
|
154 |
-
{
|
155 |
-
box-sizing: content-box{$important}
|
156 |
-
-moz-box-sizing: content-box{$important}
|
157 |
-
-webkit-box-sizing: content-box{$important}
|
158 |
-
-o-box-sizing: content-box{$important}
|
159 |
-
}
|
160 |
-
|
161 |
-
.RMPushOpen
|
162 |
-
{
|
163 |
-
width: 100%{$important}
|
164 |
-
overflow-x: hidden{$important}
|
165 |
-
height: 100%{$important}
|
166 |
-
}
|
167 |
-
|
168 |
-
.RMPushSlide
|
169 |
-
{
|
170 |
-
position: $pushPos;
|
171 |
-
$pushSide: $pushWidth%;
|
172 |
-
}
|
173 |
-
|
174 |
-
#responsive-menu
|
175 |
-
{
|
176 |
-
position: $position;
|
177 |
-
$overflowy
|
178 |
-
$bottom
|
179 |
-
width: $width%;
|
180 |
-
$side: -$width%;
|
181 |
-
$topRM;
|
182 |
-
background: $mainBkg;
|
183 |
-
z-index: 9999;
|
184 |
-
box-shadow: 0px 1px 8px #333333;
|
185 |
-
font-size: {$fontSize}px{$important}
|
186 |
-
max-width: 999px;
|
187 |
-
display: none;
|
188 |
-
$minWidth
|
189 |
-
$maxWidth
|
190 |
-
}
|
191 |
-
|
192 |
-
#responsive-menu.admin-bar-showing
|
193 |
-
{
|
194 |
-
padding-top: 32px;
|
195 |
-
}
|
196 |
-
|
197 |
-
#click-menu.admin-bar-showing
|
198 |
-
{
|
199 |
-
margin-top: 32px;
|
200 |
-
}
|
201 |
-
|
202 |
-
#responsive-menu #rm-additional-content
|
203 |
-
{
|
204 |
-
padding: 10px 5%{$important}
|
205 |
-
width: 90%{$important}
|
206 |
-
color: $txtCol;
|
207 |
-
}
|
208 |
-
|
209 |
-
#responsive-menu .appendLink
|
210 |
-
{
|
211 |
-
$subBtnAlign: 0px{$important}
|
212 |
-
position: absolute{$important}
|
213 |
-
border: 1px solid $borCol{$important}
|
214 |
-
padding: 12px 10px{$important}
|
215 |
-
color: $txtCol{$important}
|
216 |
-
background: $mainBkg{$important}
|
217 |
-
height: {$height}px{$important}
|
218 |
-
line-height: {$height}px{$important}
|
219 |
-
border-right: 0px{$important}
|
220 |
-
}
|
221 |
-
|
222 |
-
#responsive-menu .appendLink:hover
|
223 |
-
{
|
224 |
-
cursor: pointer;
|
225 |
-
background: $mainBkgH{$important}
|
226 |
-
color: $txtColH{$important}
|
227 |
-
}
|
228 |
-
|
229 |
-
#responsive-menu .responsive-menu,
|
230 |
-
#responsive-menu div,
|
231 |
-
#responsive-menu .responsive-menu li,
|
232 |
-
#responsive-menu
|
233 |
-
{
|
234 |
-
text-align: $align{$important}
|
235 |
-
}
|
236 |
-
|
237 |
-
#responsive-menu .RMImage
|
238 |
-
{
|
239 |
-
vertical-align: middle;
|
240 |
-
margin-right: 10px;
|
241 |
-
display: inline-block;
|
242 |
-
}
|
243 |
-
|
244 |
-
#responsive-menu.RMOpened
|
245 |
-
{
|
246 |
-
$botRM;
|
247 |
-
}
|
248 |
-
|
249 |
-
#responsive-menu,
|
250 |
-
#responsive-menu input {
|
251 |
-
$font
|
252 |
-
}
|
253 |
-
|
254 |
-
#responsive-menu #responsive-menu-title
|
255 |
-
{
|
256 |
-
width: 95%{$important}
|
257 |
-
font-size: {$titleSize}px{$important}
|
258 |
-
padding: $titlePadding{$important}
|
259 |
-
margin-left: 0px{$important}
|
260 |
-
background: $titleBkg{$important}
|
261 |
-
white-space: nowrap{$important}
|
262 |
-
}
|
263 |
-
|
264 |
-
#responsive-menu #responsive-menu-title,
|
265 |
-
#responsive-menu #responsive-menu-title a
|
266 |
-
{
|
267 |
-
color: $titleCol{$important}
|
268 |
-
text-decoration: none{$important}
|
269 |
-
overflow: hidden{$important}
|
270 |
-
}
|
271 |
-
|
272 |
-
#responsive-menu #responsive-menu-title a:hover {
|
273 |
-
color: $titleColH{$important}
|
274 |
-
text-decoration: none{$important}
|
275 |
-
}
|
276 |
-
|
277 |
-
#responsive-menu .appendLink,
|
278 |
-
#responsive-menu .responsive-menu li a,
|
279 |
-
#responsive-menu #responsive-menu-title a
|
280 |
-
{
|
281 |
-
|
282 |
-
transition: {$trans}s all;
|
283 |
-
-webkit-transition: {$trans}s all;
|
284 |
-
-moz-transition: {$trans}s all;
|
285 |
-
-o-transition: {$trans}s all;
|
286 |
-
|
287 |
-
}
|
288 |
-
|
289 |
-
#responsive-menu .responsive-menu
|
290 |
-
{
|
291 |
-
width: 100%{$important}
|
292 |
-
list-style-type: none{$important}
|
293 |
-
margin: 0px{$important}
|
294 |
-
}
|
295 |
-
|
296 |
-
#responsive-menu .responsive-menu li.current-menu-item > a,
|
297 |
-
#responsive-menu .responsive-menu li.current-menu-item > .appendLink,
|
298 |
-
#responsive-menu .responsive-menu li.current_page_item > a,
|
299 |
-
#responsive-menu .responsive-menu li.current_page_item > .appendLink
|
300 |
-
{
|
301 |
-
background: $curBkg{$important}
|
302 |
-
color: $curCol{$important}
|
303 |
-
}
|
304 |
-
|
305 |
-
#responsive-menu .responsive-menu li.current-menu-item > a:hover,
|
306 |
-
#responsive-menu .responsive-menu li.current-menu-item > .appendLink:hover,
|
307 |
-
#responsive-menu .responsive-menu li.current_page_item > a:hover,
|
308 |
-
#responsive-menu .responsive-menu li.current_page_item > .appendLink:hover
|
309 |
-
{
|
310 |
-
background: $curBkgHov{$important}
|
311 |
-
color: $curColHov{$important}
|
312 |
-
}
|
313 |
-
|
314 |
-
#responsive-menu .responsive-menu ul
|
315 |
-
{
|
316 |
-
margin-left: 0px{$important}
|
317 |
-
}
|
318 |
-
|
319 |
-
#responsive-menu .responsive-menu li
|
320 |
-
{
|
321 |
-
list-style-type: none{$important}
|
322 |
-
position: relative{$important}
|
323 |
-
}
|
324 |
-
|
325 |
-
#responsive-menu .responsive-menu ul li:last-child
|
326 |
-
{
|
327 |
-
padding-bottom: 0px{$important}
|
328 |
-
}
|
329 |
-
|
330 |
-
#responsive-menu .responsive-menu li a
|
331 |
-
{
|
332 |
-
padding: $linkPadding{$important}
|
333 |
-
width: 95%{$important}
|
334 |
-
display: block{$important}
|
335 |
-
height: {$height}px{$important}
|
336 |
-
line-height: {$height}px{$important}
|
337 |
-
overflow: hidden{$important}
|
338 |
-
white-space: nowrap{$important}
|
339 |
-
color: $txtCol{$important}
|
340 |
-
border-top: 1px solid $borCol{$important}
|
341 |
-
text-decoration: none{$important}
|
342 |
-
}
|
343 |
-
|
344 |
-
#click-menu
|
345 |
-
{
|
346 |
-
text-align: center;
|
347 |
-
cursor: pointer;
|
348 |
-
font-size: {$btnSize}px{$important}
|
349 |
-
display: none;
|
350 |
-
position: $position;
|
351 |
-
$location: $right%;
|
352 |
-
top: {$top}px;
|
353 |
-
color: $clickCol;
|
354 |
-
$clickBkg
|
355 |
-
padding: 5px;
|
356 |
-
z-index: 9999;
|
357 |
-
}
|
358 |
-
|
359 |
-
#responsive-menu #responsiveSearch
|
360 |
-
{
|
361 |
-
display: block{$important}
|
362 |
-
width: 95%{$important}
|
363 |
-
padding-$paddingAlign: 5%{$important}
|
364 |
-
border-top: 1px solid $borCol{$important}
|
365 |
-
clear: both{$important}
|
366 |
-
padding-top: 10px{$important}
|
367 |
-
padding-bottom: 10px{$important}
|
368 |
-
height: 40px{$important}
|
369 |
-
line-height: 40px{$important}
|
370 |
-
}
|
371 |
-
|
372 |
-
#responsive-menu #responsiveSearchSubmit
|
373 |
-
{
|
374 |
-
display: none{$important}
|
375 |
-
}
|
376 |
-
|
377 |
-
#responsive-menu #responsiveSearchInput
|
378 |
-
{
|
379 |
-
width: 91%{$important}
|
380 |
-
padding: 5px 0px 5px 3%{$important}
|
381 |
-
-webkit-appearance: none{$important}
|
382 |
-
border-radius: 2px{$important}
|
383 |
-
border: 1px solid $borCol{$important}
|
384 |
-
}
|
385 |
-
|
386 |
-
#responsive-menu .responsive-menu,
|
387 |
-
#responsive-menu div,
|
388 |
-
#responsive-menu .responsive-menu li
|
389 |
-
{
|
390 |
-
width: 100%{$important}
|
391 |
-
margin-left: 0px{$important}
|
392 |
-
padding-left: 0px{$important}
|
393 |
-
}
|
394 |
-
|
395 |
-
#responsive-menu .responsive-menu li li a
|
396 |
-
{
|
397 |
-
padding-$paddingAlign: 10%{$important}
|
398 |
-
width: 90%{$important}
|
399 |
-
overflow: hidden{$important}
|
400 |
-
}
|
401 |
-
|
402 |
-
#responsive-menu .responsive-menu li li li a
|
403 |
-
{
|
404 |
-
padding-$paddingAlign: 15%{$important}
|
405 |
-
width: 85%{$important}
|
406 |
-
overflow: hidden{$important}
|
407 |
-
}
|
408 |
-
|
409 |
-
#responsive-menu .responsive-menu li li li li a
|
410 |
-
{
|
411 |
-
padding-$paddingAlign: 20%{$important}
|
412 |
-
width: 80%{$important}
|
413 |
-
overflow: hidden{$important}
|
414 |
-
}
|
415 |
-
|
416 |
-
#responsive-menu .responsive-menu li li li li li a
|
417 |
-
{
|
418 |
-
padding-$paddingAlign: 25%{$important}
|
419 |
-
width: 75%{$important}
|
420 |
-
overflow: hidden{$important}
|
421 |
-
}
|
422 |
-
|
423 |
-
#responsive-menu .responsive-menu li a:hover
|
424 |
-
{
|
425 |
-
background: $mainBkgH{$important}
|
426 |
-
color: $txtColH{$important}
|
427 |
-
list-style-type: none{$important}
|
428 |
-
text-decoration: none{$important}
|
429 |
-
}
|
430 |
-
|
431 |
-
#click-menu #RMX
|
432 |
-
{
|
433 |
-
display: none;
|
434 |
-
font-size: 24px;
|
435 |
-
line-height: {$clickMenuHeight}px{$important}
|
436 |
-
height: {$clickMenuHeight}px{$important}
|
437 |
-
color: $clickCol{$important}
|
438 |
-
top: -4px{$important}
|
439 |
-
position: relative{$important}
|
440 |
-
}
|
441 |
-
|
442 |
-
|
443 |
-
#click-menu #RMX.threelines-float-left,
|
444 |
-
#click-menu #RMX.threelines-float-right,
|
445 |
-
#click-menu-label
|
446 |
-
{
|
447 |
-
line-height: {$options['RMClickTitleHeight']}px{$important}
|
448 |
-
}
|
449 |
-
|
450 |
-
#click-menu-label.click-menu-label-left
|
451 |
-
{
|
452 |
-
float: left{$important}
|
453 |
-
margin-right: 10px{$important}
|
454 |
-
}
|
455 |
-
|
456 |
-
|
457 |
-
#click-menu-label.click-menu-label-right
|
458 |
-
{
|
459 |
-
float: right{$important}
|
460 |
-
margin-left: 5px{$important}
|
461 |
-
}
|
462 |
-
|
463 |
-
#click-menu img,
|
464 |
-
#click-menu .threeLines
|
465 |
-
{
|
466 |
-
width: {$lineWidth}px{$important}
|
467 |
-
height: {$clickMenuHeight}px{$important}
|
468 |
-
margin: {$lineMargin}px auto{$important}
|
469 |
-
}
|
470 |
-
|
471 |
-
#click-menu img.rm-img-clicked
|
472 |
-
{
|
473 |
-
display: none;
|
474 |
-
}
|
475 |
-
|
476 |
-
#click-menu img
|
477 |
-
{
|
478 |
-
height: auto{$important}
|
479 |
-
}
|
480 |
-
|
481 |
-
#click-menu img.click-menu-float-left,
|
482 |
-
#click-menu img.click-menu-float-right,
|
483 |
-
#click-menu .threeLines.threelines-float-left
|
484 |
-
{
|
485 |
-
float: left{$important}
|
486 |
-
}
|
487 |
-
|
488 |
-
#click-menu .threeLines .line
|
489 |
-
{
|
490 |
-
height: {$lineHeight}px{$important}
|
491 |
-
margin-bottom: {$lineMargin}px{$important}
|
492 |
-
background: $clickCol{$important}
|
493 |
-
width: 100%{$important}
|
494 |
-
}
|
495 |
-
|
496 |
-
#click-menu .threeLines .line.last
|
497 |
-
{
|
498 |
-
margin-bottom: 0px{$important}
|
499 |
-
}
|
500 |
-
|
501 |
-
@media only screen and ( min-width : 0px ) and ( max-width : {$breakpoint}px ) {
|
502 |
-
|
503 |
-
#click-menu
|
504 |
-
{
|
505 |
-
display: block;
|
506 |
-
}
|
507 |
-
|
508 |
-
";
|
509 |
-
|
510 |
-
$css .= $options['RMCss'] ? $options['RMCss'] . " { display: none !important; } " : '';
|
511 |
-
|
512 |
-
$css .= " }";
|
513 |
-
|
514 |
-
$css .= $options['RMAnim'] == 'push' && $options['RMPushCSS'] ? $options['RMPushCSS'] . " { position: {$pushPos}{$important} left: 0px; } " : '';
|
515 |
-
|
516 |
-
/*
|
517 |
-
|--------------------------------------------------------------------------
|
518 |
-
| Strip Tags If Needed
|
519 |
-
|--------------------------------------------------------------------------
|
520 |
-
|
|
521 |
-
| Determine whether to use the <style> tags
|
522 |
-
|
|
523 |
-
*/
|
524 |
-
|
525 |
-
$css .= $options['RMExternal'] ? '' : '</style>';
|
526 |
-
|
527 |
-
/*
|
528 |
-
|--------------------------------------------------------------------------
|
529 |
-
| Return Finished Styles
|
530 |
-
|--------------------------------------------------------------------------
|
531 |
-
|
|
532 |
-
| Finally we return the final script back
|
533 |
-
|
|
534 |
-
*/
|
535 |
-
|
536 |
-
return $css;
|
537 |
-
|
538 |
-
|
539 |
-
}
|
540 |
-
|
541 |
-
|
542 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/models/FolderModel.php
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_FolderModel extends RM_BaseModel {
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Function to create the data folders
|
7 |
-
*
|
8 |
-
* @return null
|
9 |
-
* @added 1.6
|
10 |
-
*/
|
11 |
-
|
12 |
-
static function create() {
|
13 |
-
|
14 |
-
|
15 |
-
$mainFolder = RM_Registry::get( 'config', 'plugin_data_dir' );
|
16 |
-
$cssFolder = RM_Registry::get( 'config', 'plugin_data_dir' ) . '/css';
|
17 |
-
$jsFolder = RM_Registry::get( 'config', 'plugin_data_dir' ) . '/js';
|
18 |
-
|
19 |
-
|
20 |
-
if( !file_exists( $mainFolder ) ) mkdir( $mainFolder, 0777 );
|
21 |
-
if( !file_exists( $cssFolder ) ) mkdir( $cssFolder, 0777 );
|
22 |
-
if( !file_exists( $jsFolder ) ) mkdir( $jsFolder, 0777 );
|
23 |
-
|
24 |
-
|
25 |
-
if( !file_exists( $mainFolder ) )
|
26 |
-
RM_Status::set( 'error', __( 'Unable to create data folders', 'responsive-menu' ) );
|
27 |
-
|
28 |
-
if( !file_exists( $cssFolder ) )
|
29 |
-
RM_Status::set( 'error', __( 'Unable to create CSS folders', 'responsive-menu' ) );
|
30 |
-
|
31 |
-
if( !file_exists( $cssFolder ) )
|
32 |
-
RM_Status::set( 'error', __( 'Unable to create JS folders', 'responsive-menu' ) );
|
33 |
-
|
34 |
-
|
35 |
-
}
|
36 |
-
|
37 |
-
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/models/JSModel.php
DELETED
@@ -1,725 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class RM_JSModel extends RM_BaseModel {
|
4 |
-
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Function to create the file to hold the JS file
|
8 |
-
*
|
9 |
-
* @param string $js
|
10 |
-
* @return file
|
11 |
-
* @added 1.6
|
12 |
-
*/
|
13 |
-
|
14 |
-
static function createJSFile( $js ) {
|
15 |
-
|
16 |
-
|
17 |
-
$file = fopen( RM_Registry::get( 'config', 'plugin_data_dir' ) . '/js/responsive-menu-' . get_current_blog_id() . '.js', 'w' );
|
18 |
-
|
19 |
-
$jsFile = fwrite( $file, $js );
|
20 |
-
|
21 |
-
fclose( $file );
|
22 |
-
|
23 |
-
if( !$file )
|
24 |
-
RM_Status::set( 'error', __( 'Unable to create JS file', 'responsive-menu' ) );
|
25 |
-
|
26 |
-
return $jsFile;
|
27 |
-
|
28 |
-
|
29 |
-
}
|
30 |
-
|
31 |
-
|
32 |
-
/**
|
33 |
-
* Function to format, create and get the JS itself
|
34 |
-
*
|
35 |
-
* @param array $options
|
36 |
-
* @return string
|
37 |
-
* @added 1.0
|
38 |
-
*/
|
39 |
-
|
40 |
-
static function getJS( $options ) {
|
41 |
-
|
42 |
-
|
43 |
-
$setHeight = $options['RMPos'] == 'fixed' ? '' : " \$RMjQuery( '#responsive-menu' ).css( 'height', \$RMjQuery( document ).height() ); ";
|
44 |
-
$breakpoint = empty($options['RMBreak']) ? "600" : $options['RMBreak'];
|
45 |
-
|
46 |
-
$RMPushCSS = empty( $options['RMPushCSS'] ) ? "" : $options['RMPushCSS'];
|
47 |
-
|
48 |
-
$slideOpen = $options['RMAnim'] == 'push' && !empty($options['RMPushCSS']) ? " \$RMjQuery( 'body' ).addClass( 'RMPushOpen' ); " : '';
|
49 |
-
$slideRemove = $options['RMAnim'] == 'push' && !empty($options['RMPushCSS']) ? " \$RMjQuery( 'body' ).removeClass( 'RMPushOpen' ); " : '';
|
50 |
-
|
51 |
-
/* Added 1.8 */
|
52 |
-
switch( $options['RMSide'] ) :
|
53 |
-
case 'left' : $side = 'left'; break;
|
54 |
-
case 'right' : $side = 'right'; break;
|
55 |
-
case 'top' : $side = 'top'; break;
|
56 |
-
case 'bottom' : $side = 'top'; break;
|
57 |
-
default : $side = 'left'; break;
|
58 |
-
endswitch;
|
59 |
-
|
60 |
-
/* Added 2.0 */
|
61 |
-
switch( $options['RMSide'] ) :
|
62 |
-
case 'left' : $width = $options['RMWidth']; $neg = '-'; break;
|
63 |
-
case 'right' : $width = $options['RMWidth']; $neg = '-'; break;
|
64 |
-
case 'top' : $width = '100'; $neg = '-'; break;
|
65 |
-
case 'bottom' : $width = '100'; $neg = ''; break;
|
66 |
-
default : $width = '75'; break;
|
67 |
-
endswitch;
|
68 |
-
|
69 |
-
switch( $options['RMSide'] ) :
|
70 |
-
case 'left' : $pushSide = 'left'; $pos = ''; break;
|
71 |
-
case 'right' : $pushSide = 'left'; $pos = '-'; break;
|
72 |
-
case 'top' : $pushSide = 'marginTop'; $pos = ''; break;
|
73 |
-
case 'bottom' : $pushSide = 'marginTop'; $pos = '-'; break;
|
74 |
-
endswitch;
|
75 |
-
|
76 |
-
switch( $options['RMSide'] ) :
|
77 |
-
case 'left' : $pushBtnSide = 'left'; break;
|
78 |
-
case 'right' : $pushBtnSide = 'right'; break;
|
79 |
-
case 'top' : $pushBtnSide = 'top'; break;
|
80 |
-
case 'bottom' : $pushBtnSide = 'bottom'; break;
|
81 |
-
endswitch;
|
82 |
-
|
83 |
-
$sideSlideOpen = $side == 'right' && empty( $slideOpen ) ? " \$RMjQuery( 'body' ).addClass( 'RMPushOpen' ); " : '';
|
84 |
-
$sideSlideRemove = $side == 'right' && empty( $slideRemove ) ? " \$RMjQuery( 'body' ).removeClass( 'RMPushOpen' ); " : '';
|
85 |
-
|
86 |
-
/* Added 2.3 */
|
87 |
-
|
88 |
-
$trigger = isset( $options['RMTrigger'] ) ? $options['RMTrigger'] : RM_Registry::get( 'defaults', 'RMTrigger' );
|
89 |
-
|
90 |
-
$speed = $options['RMAnimSpd'] * 1000;
|
91 |
-
|
92 |
-
/* Added 2.5 */
|
93 |
-
|
94 |
-
$location = $options['RMLoc'];
|
95 |
-
|
96 |
-
/*
|
97 |
-
|--------------------------------------------------------------------------
|
98 |
-
| Slide Push Animation
|
99 |
-
|--------------------------------------------------------------------------
|
100 |
-
|
|
101 |
-
| This is where we deal with the JavaScript needed for the push animations
|
102 |
-
|
|
103 |
-
*/
|
104 |
-
|
105 |
-
$slideOver = " var MenuWidth = \$RMjQuery('#responsive-menu').width(); ";
|
106 |
-
|
107 |
-
/* Only for the push animation */
|
108 |
-
if( $options['RMAnim'] == 'push' ) :
|
109 |
-
|
110 |
-
if( $options['RMSide'] == 'top' || $options['RMSide'] == 'bottom' ) :
|
111 |
-
|
112 |
-
$slideOver .= "
|
113 |
-
|
114 |
-
var MenuHeight = \$RMjQuery( '#responsive-menu' ).css( 'height' );
|
115 |
-
|
116 |
-
\$RMjQuery( '$RMPushCSS' ).animate( { $pushSide: \"{$pos}\" + MenuHeight }, {$speed}, 'linear' );
|
117 |
-
|
118 |
-
|
119 |
-
";
|
120 |
-
|
121 |
-
if( $options['RMPushBtn'] ) :
|
122 |
-
|
123 |
-
$slideOver .= "
|
124 |
-
|
125 |
-
\$RMjQuery( '#click-menu' ).animate( { $pushBtnSide: \"{$pos}\" + MenuHeight }, {$speed}, 'linear' );
|
126 |
-
\$RMjQuery( '#click-menu' ).css( '$location', 'auto' );
|
127 |
-
|
128 |
-
";
|
129 |
-
|
130 |
-
endif;
|
131 |
-
|
132 |
-
else :
|
133 |
-
|
134 |
-
$slideOver .= "
|
135 |
-
|
136 |
-
\$RMjQuery( '$RMPushCSS' ).animate( { $pushSide: {$pos}MenuWidth }, {$speed}, 'linear' );
|
137 |
-
|
138 |
-
|
139 |
-
";
|
140 |
-
|
141 |
-
if( $options['RMPushBtn'] && ( $pushBtnSide == $location ) ) :
|
142 |
-
|
143 |
-
$slideOver .= "
|
144 |
-
|
145 |
-
\$RMjQuery( '#click-menu' ).animate( { $location: MenuWidth + 20 }, {$speed}, 'linear' );
|
146 |
-
\$RMjQuery( '#click-menu' ).css( '{$location}', 'auto' );
|
147 |
-
|
148 |
-
";
|
149 |
-
|
150 |
-
endif;
|
151 |
-
|
152 |
-
|
153 |
-
endif;
|
154 |
-
|
155 |
-
endif;
|
156 |
-
|
157 |
-
$slideOverCss = $options['RMAnim'] == 'push' && !empty($options['RMPushCSS']) ? " \$RMjQuery( '$RMPushCSS' ).addClass( 'RMPushSlide' ); " : '';
|
158 |
-
|
159 |
-
$slideBack = $options['RMAnim'] == 'push' && !empty($options['RMPushCSS']) ? " \$RMjQuery( '$RMPushCSS' ).animate( { $pushSide: \"0\" }, {$speed}, 'linear' ); " : '';
|
160 |
-
|
161 |
-
if( $options['RMPushBtn'] && $options['RMAnim'] == 'push' && ( $pushBtnSide == $location ) ) :
|
162 |
-
|
163 |
-
$slideBack .= "
|
164 |
-
|
165 |
-
\$RMjQuery( '#click-menu' ).animate( { $pushBtnSide: '{$options['RMRight']}%' }, {$speed}, 'linear', function() {
|
166 |
-
|
167 |
-
\$RMjQuery( '#click-menu' ).removeAttr( 'style' );
|
168 |
-
|
169 |
-
});
|
170 |
-
|
171 |
-
";
|
172 |
-
|
173 |
-
endif;
|
174 |
-
|
175 |
-
$slideOverCssRemove = $options['RMAnim'] == 'push' && !empty($options['RMPushCSS']) ? " \$RMjQuery( '$RMPushCSS' ).removeClass( 'RMPushSlide' ); " : '';
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
/*
|
180 |
-
|--------------------------------------------------------------------------
|
181 |
-
| Change to X or Clicked Menu Image Option
|
182 |
-
|--------------------------------------------------------------------------
|
183 |
-
|
|
184 |
-
| This is where we deal with the JavaScript needed to change the main lines
|
185 |
-
| to an X or click image if this option has been set
|
186 |
-
|
|
187 |
-
*/
|
188 |
-
|
189 |
-
if( $options['RMX'] || $options['RMClickImgClicked'] ) :
|
190 |
-
|
191 |
-
$closeX = " \$RMjQuery( '#click-menu #RMX, #click-menu img.rm-img-clicked' ).css( 'display', 'none' );
|
192 |
-
\$RMjQuery( '#click-menu #RM3Lines, #click-menu img.rm-img-to-click' ).css( 'display', 'block' ); ";
|
193 |
-
|
194 |
-
$showX = " \$RMjQuery( '#click-menu #RM3Lines, #click-menu img.rm-img-to-click' ).css( 'display', 'none' );
|
195 |
-
\$RMjQuery( '#click-menu #RMX, #click-menu img.rm-img-clicked' ).css( 'display', 'block' ); ";
|
196 |
-
else :
|
197 |
-
|
198 |
-
$closeX = "";
|
199 |
-
$showX = "";
|
200 |
-
|
201 |
-
endif;
|
202 |
-
|
203 |
-
/*
|
204 |
-
|--------------------------------------------------------------------------
|
205 |
-
| Menu Expansion Options
|
206 |
-
|--------------------------------------------------------------------------
|
207 |
-
|
|
208 |
-
| This is where we deal with the array of expansion options, the current
|
209 |
-
| combinations are:
|
210 |
-
|
|
211 |
-
| - Auto Expand Current Parent Items ['RMExpandPar']
|
212 |
-
| - Auto Expand Current Parent Items + Auto Expand Sub-Menus ['RMExpandPar'] && ['RMExpand']
|
213 |
-
| - Auto Expand Sub-Menus ['RMExpand']
|
214 |
-
| - None !['RMExpandPar'] && !['RMExpand']
|
215 |
-
|
|
216 |
-
*/
|
217 |
-
|
218 |
-
$activeArrow = $options['RMArImgA'] ? '<img src="' . $options['RMArImgA'] . '" />' : json_decode( $options['RMArShpA'] );
|
219 |
-
$inactiveArrow = $options['RMArImgI'] ? '<img src="' . $options['RMArImgI'] . '" />' : json_decode( $options['RMArShpI'] );
|
220 |
-
|
221 |
-
|
222 |
-
if ( !$options['RMExpand'] ) :
|
223 |
-
|
224 |
-
$clickedLink = '<span class=\"appendLink rm-append-inactive\">' . $inactiveArrow . '</span>';
|
225 |
-
$clickLink = '<span class=\"appendLink rm-append-inactive\">' . $inactiveArrow . '</span>';
|
226 |
-
|
227 |
-
else :
|
228 |
-
|
229 |
-
$clickedLink = '<span class=\"appendLink rm-append-active\">' . $activeArrow . '</span>';
|
230 |
-
$clickLink = '<span class=\"appendLink rm-append-active\">' . $activeArrow . '</span>';
|
231 |
-
|
232 |
-
endif;
|
233 |
-
|
234 |
-
if( $options['RMExpandPar'] ) :
|
235 |
-
|
236 |
-
$clickedLink = '<span class=\"appendLink rm-append-active\">' . $activeArrow . '</span>';
|
237 |
-
$clickLink = '<span class=\"appendLink rm-append-inactive\">' . $inactiveArrow . '</span>';
|
238 |
-
|
239 |
-
endif;
|
240 |
-
|
241 |
-
if( $options['RMExpandPar'] && $options['RMExpand'] ) :
|
242 |
-
|
243 |
-
$clickedLink = '<span class=\"appendLink rm-append-active\">' . $activeArrow . '</span>';
|
244 |
-
$clickLink = '<span class=\"appendLink rm-append-active\">' . $activeArrow . '</span>';
|
245 |
-
|
246 |
-
endif;
|
247 |
-
|
248 |
-
|
249 |
-
/*
|
250 |
-
|--------------------------------------------------------------------------
|
251 |
-
| Initialise Output
|
252 |
-
|--------------------------------------------------------------------------
|
253 |
-
|
|
254 |
-
| Initialise the JavaScript output variable ready for appending
|
255 |
-
|
|
256 |
-
*/
|
257 |
-
|
258 |
-
$js = null;
|
259 |
-
|
260 |
-
/*
|
261 |
-
|--------------------------------------------------------------------------
|
262 |
-
| Strip Tags If Needed
|
263 |
-
|--------------------------------------------------------------------------
|
264 |
-
|
|
265 |
-
| Determine whether to use the <script> tags (when using internal scripts)
|
266 |
-
|
|
267 |
-
*/
|
268 |
-
|
269 |
-
$js .= $options['RMExternal'] ? '' : '<script>';
|
270 |
-
|
271 |
-
/*
|
272 |
-
|--------------------------------------------------------------------------
|
273 |
-
| Initial Setup
|
274 |
-
|--------------------------------------------------------------------------
|
275 |
-
|
|
276 |
-
| Setup the initial noConflict and document ready checks
|
277 |
-
|
|
278 |
-
*/
|
279 |
-
|
280 |
-
$js .= "
|
281 |
-
|
282 |
-
var \$RMjQuery = jQuery.noConflict();
|
283 |
-
|
284 |
-
\$RMjQuery( document ).ready( function() {
|
285 |
-
|
286 |
-
";
|
287 |
-
|
288 |
-
/*
|
289 |
-
|--------------------------------------------------------------------------
|
290 |
-
| Stop Main Parent Item Clicks
|
291 |
-
|--------------------------------------------------------------------------
|
292 |
-
|
|
293 |
-
| Stop clicks on the main parent items if option selected
|
294 |
-
| Added 2.0
|
295 |
-
*/
|
296 |
-
|
297 |
-
if( $options['RMIgnParCli'] ) :
|
298 |
-
|
299 |
-
$js .= "
|
300 |
-
|
301 |
-
\$RMjQuery( '#responsive-menu ul > li.menu-item-has-children' ).children( 'a' ).addClass( 'rm-click-disabled' );
|
302 |
-
|
303 |
-
\$RMjQuery( '#responsive-menu ul > li.menu-item-has-children' ).children( 'a' ).on( 'click', function( e ) {
|
304 |
-
|
305 |
-
e.preventDefault();
|
306 |
-
|
307 |
-
});
|
308 |
-
|
309 |
-
\$RMjQuery( '#responsive-menu ul > li.page_item_has_children' ).children( 'a' ).addClass( 'rm-click-disabled' );
|
310 |
-
|
311 |
-
\$RMjQuery( '#responsive-menu ul > li.page_item_has_children' ).children( 'a' ).on( 'click', function( e ) {
|
312 |
-
|
313 |
-
e.preventDefault();
|
314 |
-
|
315 |
-
});
|
316 |
-
|
317 |
-
";
|
318 |
-
|
319 |
-
endif;
|
320 |
-
|
321 |
-
/*
|
322 |
-
|--------------------------------------------------------------------------
|
323 |
-
| Closes the menu on page clicks
|
324 |
-
|--------------------------------------------------------------------------
|
325 |
-
|
|
326 |
-
| Close menu on page clicks if required
|
327 |
-
| Added 2.0
|
328 |
-
*/
|
329 |
-
|
330 |
-
if( $options['RMCliToClo'] ) :
|
331 |
-
|
332 |
-
$js .= "
|
333 |
-
|
334 |
-
\$RMjQuery( document ).bind( 'vclick', function( e ) {
|
335 |
-
|
336 |
-
if( e.which != 2 && !\$RMjQuery( e.target ).closest( '#responsive-menu, {$trigger}' ).length ) {
|
337 |
-
|
338 |
-
closeRM();
|
339 |
-
|
340 |
-
}
|
341 |
-
|
342 |
-
});
|
343 |
-
|
344 |
-
";
|
345 |
-
|
346 |
-
endif;
|
347 |
-
|
348 |
-
|
349 |
-
/*
|
350 |
-
|--------------------------------------------------------------------------
|
351 |
-
| Click Menu Function
|
352 |
-
|--------------------------------------------------------------------------
|
353 |
-
|
|
354 |
-
| This is our Click Handler to determine whether or not to open or close
|
355 |
-
| the menu when the click menu button has been clicked.
|
356 |
-
|
|
357 |
-
*/
|
358 |
-
|
359 |
-
$js .= "
|
360 |
-
|
361 |
-
var isOpen = false;
|
362 |
-
|
363 |
-
\$RMjQuery( document ).on( 'click', '{$trigger}', function() {
|
364 |
-
|
365 |
-
$setHeight
|
366 |
-
|
367 |
-
!isOpen ? openRM() : closeRM();
|
368 |
-
|
369 |
-
});
|
370 |
-
|
371 |
-
";
|
372 |
-
|
373 |
-
/*
|
374 |
-
|--------------------------------------------------------------------------
|
375 |
-
| Menu Open Function
|
376 |
-
|--------------------------------------------------------------------------
|
377 |
-
|
|
378 |
-
| This is the main function that deals with opening the menu and then sets
|
379 |
-
| its state to open
|
380 |
-
|
|
381 |
-
*/
|
382 |
-
|
383 |
-
$js.= "
|
384 |
-
|
385 |
-
function openRM() {
|
386 |
-
|
387 |
-
$slideOpen
|
388 |
-
$sideSlideOpen
|
389 |
-
$slideOverCss
|
390 |
-
$slideOver
|
391 |
-
$showX
|
392 |
-
|
393 |
-
\$RMjQuery( '#responsive-menu' ).css( 'display', 'block' );
|
394 |
-
\$RMjQuery( '#responsive-menu' ).addClass( 'RMOpened' );
|
395 |
-
\$RMjQuery( '#click-menu' ).addClass( 'click-menu-active' );
|
396 |
-
\$RMjQuery( 'body' ).addClass( 'responsive-menu-open' );
|
397 |
-
|
398 |
-
\$RMjQuery( '#responsive-menu' ).stop().animate( { $side: \"0\" }, $speed, 'linear', function() {
|
399 |
-
|
400 |
-
$setHeight
|
401 |
-
|
402 |
-
isOpen = true;
|
403 |
-
|
404 |
-
} );
|
405 |
-
|
406 |
-
}
|
407 |
-
|
408 |
-
";
|
409 |
-
|
410 |
-
/*
|
411 |
-
|--------------------------------------------------------------------------
|
412 |
-
| Menu Close Function
|
413 |
-
|--------------------------------------------------------------------------
|
414 |
-
|
|
415 |
-
| This is the main function that deals with Closing the Menu and then sets
|
416 |
-
| its state to closed
|
417 |
-
|
|
418 |
-
| Added by Bhupender
|
419 |
-
| Modified negative width to take directly width of menu instead of '%',
|
420 |
-
| this works for condition where animation is push and max width of menu is less then %
|
421 |
-
|
|
422 |
-
*/
|
423 |
-
|
424 |
-
$js .= "
|
425 |
-
|
426 |
-
function closeRM() {
|
427 |
-
|
428 |
-
$slideBack
|
429 |
-
|
430 |
-
\$RMjQuery( '#responsive-menu' ).animate( { $side: {$neg}\$RMjQuery( '#responsive-menu' ).width() }, $speed, 'linear', function() {
|
431 |
-
|
432 |
-
$slideRemove
|
433 |
-
$sideSlideRemove
|
434 |
-
$slideOverCssRemove
|
435 |
-
$closeX
|
436 |
-
\$RMjQuery( '#responsive-menu' ).css( 'display', 'none' );
|
437 |
-
\$RMjQuery( '#responsive-menu' ).removeClass( 'RMOpened' );
|
438 |
-
\$RMjQuery( '#click-menu' ).removeClass( 'click-menu-active' );
|
439 |
-
\$RMjQuery( 'body' ).removeClass( 'responsive-menu-open' );
|
440 |
-
|
441 |
-
isOpen = false;
|
442 |
-
|
443 |
-
} );
|
444 |
-
|
445 |
-
}
|
446 |
-
|
447 |
-
";
|
448 |
-
|
449 |
-
/*
|
450 |
-
|--------------------------------------------------------------------------
|
451 |
-
| Menu Resize Function
|
452 |
-
|--------------------------------------------------------------------------
|
453 |
-
|
|
454 |
-
| This is the main function that deals with resizing the page and is used
|
455 |
-
| to judge whether the menu needs closing once the screen is resized
|
456 |
-
|
|
457 |
-
|
|
458 |
-
| Added by Bhupender
|
459 |
-
| - Modified negative width to take directly width of menu instead of '%',
|
460 |
-
| this works for condition where animation is push and max width of menu is less then %
|
461 |
-
|
462 |
-
*/
|
463 |
-
|
464 |
-
$js .= "
|
465 |
-
|
466 |
-
\$RMjQuery( window ).resize( function() {
|
467 |
-
|
468 |
-
\$RMjQuery( '#responsive-menu' ).stop( true, true );
|
469 |
-
|
470 |
-
$setHeight
|
471 |
-
|
472 |
-
if( \$RMjQuery( window ).width() > $breakpoint ) {
|
473 |
-
|
474 |
-
if( \$RMjQuery( '#responsive-menu' ).css( '$side' ) != -\$RMjQuery( '#responsive-menu' ).width() ) {
|
475 |
-
|
476 |
-
closeRM();
|
477 |
-
|
478 |
-
}
|
479 |
-
|
480 |
-
}
|
481 |
-
|
482 |
-
});
|
483 |
-
|
484 |
-
";
|
485 |
-
|
486 |
-
|
487 |
-
/*
|
488 |
-
|--------------------------------------------------------------------------
|
489 |
-
| Expand children links of parents
|
490 |
-
|--------------------------------------------------------------------------
|
491 |
-
|
|
492 |
-
| Section to automatically expand children links of parents if necessary
|
493 |
-
| Added 2.0
|
494 |
-
|
|
495 |
-
*/
|
496 |
-
|
497 |
-
if( $options['RMExpandPar'] ) :
|
498 |
-
|
499 |
-
$js .= "
|
500 |
-
|
501 |
-
\$RMjQuery( '#responsive-menu ul ul' ).css( 'display', 'none' );
|
502 |
-
|
503 |
-
\$RMjQuery( '#responsive-menu .current_page_ancestor.menu-item-has-children' ).children( 'ul' ).css( 'display', 'block' );
|
504 |
-
\$RMjQuery( '#responsive-menu .current-menu-ancestor.menu-item-has-children' ).children( 'ul' ).css( 'display', 'block' );
|
505 |
-
\$RMjQuery( '#responsive-menu .current-menu-item.menu-item-has-children' ).children( 'ul' ).css( 'display', 'block' );
|
506 |
-
|
507 |
-
\$RMjQuery( '#responsive-menu .current_page_ancestor.page_item_has_children' ).children( 'ul' ).css( 'display', 'block' );
|
508 |
-
\$RMjQuery( '#responsive-menu .current-menu-ancestor.page_item_has_children' ).children( 'ul' ).css( 'display', 'block' );
|
509 |
-
\$RMjQuery( '#responsive-menu .current-menu-item.page_item_has_children' ).children( 'ul' ).css( 'display', 'block' );
|
510 |
-
|
511 |
-
";
|
512 |
-
|
513 |
-
endif;
|
514 |
-
|
515 |
-
/*
|
516 |
-
|--------------------------------------------------------------------------
|
517 |
-
| Add Toggle Buttons
|
518 |
-
|--------------------------------------------------------------------------
|
519 |
-
|
|
520 |
-
| This is the main section that deals with Adding the correct Toggle buttons
|
521 |
-
| when needed to the links
|
522 |
-
|
|
523 |
-
*/
|
524 |
-
|
525 |
-
if( $options['RMExpand'] ) :
|
526 |
-
$js .= " \$RMjQuery( '#responsive-menu ul ul' ).css( 'display', 'block' ); ";
|
527 |
-
endif;
|
528 |
-
|
529 |
-
$js .= "
|
530 |
-
|
531 |
-
var clickLink = '{$clickLink}';
|
532 |
-
var clickedLink = '{$clickedLink}';
|
533 |
-
|
534 |
-
\$RMjQuery( '#responsive-menu .responsive-menu li' ).each( function() {
|
535 |
-
|
536 |
-
if( \$RMjQuery( this ).children( 'ul' ).length > 0 ) {
|
537 |
-
|
538 |
-
if( \$RMjQuery( this ).find( '> ul' ).css( 'display' ) == 'none' ) {
|
539 |
-
|
540 |
-
\$RMjQuery( this ).prepend( clickLink );
|
541 |
-
|
542 |
-
} else {
|
543 |
-
|
544 |
-
\$RMjQuery( this ).prepend( clickedLink );
|
545 |
-
|
546 |
-
}
|
547 |
-
|
548 |
-
}
|
549 |
-
|
550 |
-
});
|
551 |
-
|
552 |
-
";
|
553 |
-
|
554 |
-
/*
|
555 |
-
|--------------------------------------------------------------------------
|
556 |
-
| Accordion Animation
|
557 |
-
|--------------------------------------------------------------------------
|
558 |
-
|
|
559 |
-
| This is the part that deals with the accordion animation
|
560 |
-
| Currently only works to one level of depth
|
561 |
-
|
|
562 |
-
*/
|
563 |
-
|
564 |
-
if( $options['RMAccordion'] && $options['RMAccordion'] == 'accordion' ) :
|
565 |
-
|
566 |
-
$accordion = "
|
567 |
-
|
568 |
-
if( \$RMjQuery( this ).closest( 'ul' ).is( '.responsive-menu' ) ) {
|
569 |
-
|
570 |
-
\$RMjQuery( '.accordion-open' ).removeClass( 'accordion-open' );
|
571 |
-
|
572 |
-
\$RMjQuery( this ).parent( 'li' ).addClass( 'accordion-open' );
|
573 |
-
|
574 |
-
\$RMjQuery( '.responsive-menu > li:not( .accordion-open ) > ul' ).slideUp();
|
575 |
-
|
576 |
-
if( \$RMjQuery( this ).siblings( 'ul' ).is( ':visible' ) ) {
|
577 |
-
\$RMjQuery( this ).parent( 'li' ).removeClass( 'accordion-open' );
|
578 |
-
} else {
|
579 |
-
\$RMjQuery( this ).parent( 'li' ).addClass( 'accordion-open' );
|
580 |
-
}
|
581 |
-
|
582 |
-
\$RMjQuery( '.responsive-menu > li > .appendLink' ).removeClass( 'rm-append-inactive' );
|
583 |
-
\$RMjQuery( '.responsive-menu > li > .appendLink' ).addClass( 'rm-append-active' );
|
584 |
-
|
585 |
-
var AllClosed = true;
|
586 |
-
|
587 |
-
\$RMjQuery( '.responsive-menu > li > .appendLink' ).each( function( i ) {
|
588 |
-
\$RMjQuery( this ).html( \$RMjQuery( this ).hasClass( 'rm-append-active' ) ? '{$inactiveArrow}' : '{$activeArrow}' );
|
589 |
-
AllClosed = \$RMjQuery( this ).parent( 'li' ).hasClass( 'accordion-open' )? false : AllClosed;
|
590 |
-
});
|
591 |
-
|
592 |
-
\$RMjQuery( this ).removeClass( 'rm-append-active' );
|
593 |
-
\$RMjQuery( this ).addClass( 'rm-append-inactive' );
|
594 |
-
|
595 |
-
if( AllClosed ) {
|
596 |
-
\$RMjQuery( this ).removeClass( 'rm-append-inactive' );
|
597 |
-
\$RMjQuery( this ).addClass( 'rm-append-active' );
|
598 |
-
|
599 |
-
}
|
600 |
-
|
601 |
-
}
|
602 |
-
|
603 |
-
";
|
604 |
-
|
605 |
-
else :
|
606 |
-
|
607 |
-
$accordion = null;
|
608 |
-
|
609 |
-
endif;
|
610 |
-
|
611 |
-
|
612 |
-
/*
|
613 |
-
|--------------------------------------------------------------------------
|
614 |
-
| Toggle Buttons Function
|
615 |
-
|--------------------------------------------------------------------------
|
616 |
-
|
|
617 |
-
| This is the function that deals with toggling the toggle buttons
|
618 |
-
|
|
619 |
-
*/
|
620 |
-
|
621 |
-
$js .= "
|
622 |
-
|
623 |
-
\$RMjQuery( '.appendLink' ).on( 'click', function() {
|
624 |
-
|
625 |
-
$accordion
|
626 |
-
|
627 |
-
\$RMjQuery( this ).nextAll( '#responsive-menu ul ul' ).slideToggle();
|
628 |
-
|
629 |
-
\$RMjQuery( this ).html( \$RMjQuery( this ).hasClass( 'rm-append-active' ) ? '{$inactiveArrow}' : '{$activeArrow}' );
|
630 |
-
\$RMjQuery( this ).toggleClass( 'rm-append-active rm-append-inactive' );
|
631 |
-
|
632 |
-
$setHeight
|
633 |
-
|
634 |
-
});
|
635 |
-
|
636 |
-
\$RMjQuery( '.rm-click-disabled' ).on( 'click', function() {
|
637 |
-
|
638 |
-
$accordion
|
639 |
-
|
640 |
-
\$RMjQuery( this ).nextAll( '#responsive-menu ul ul' ).slideToggle();
|
641 |
-
|
642 |
-
\$RMjQuery( this ).siblings( '.appendLink' ).html( \$RMjQuery( this ).hasClass( 'rm-append-active' ) ? '{$inactiveArrow}' : '{$activeArrow}' );
|
643 |
-
\$RMjQuery( this ).toggleClass( 'rm-append-active rm-append-inactive' );
|
644 |
-
|
645 |
-
$setHeight
|
646 |
-
|
647 |
-
});
|
648 |
-
|
649 |
-
";
|
650 |
-
|
651 |
-
/*
|
652 |
-
|--------------------------------------------------------------------------
|
653 |
-
| Finally Hide Appropriate Hidden Objects
|
654 |
-
|--------------------------------------------------------------------------
|
655 |
-
|
|
656 |
-
| This is the function that deals with toggling the toggle buttons
|
657 |
-
|
|
658 |
-
*/
|
659 |
-
|
660 |
-
$js .= "
|
661 |
-
|
662 |
-
\$RMjQuery( '.rm-append-inactive' ).siblings( 'ul' ).css( 'display', 'none' );
|
663 |
-
|
664 |
-
";
|
665 |
-
|
666 |
-
/*
|
667 |
-
|--------------------------------------------------------------------------
|
668 |
-
| Menu Closing Options
|
669 |
-
|--------------------------------------------------------------------------
|
670 |
-
|
|
671 |
-
| This is where we set the menu to retract if a link is clicked
|
672 |
-
| Added 1.9
|
673 |
-
|
|
674 |
-
*/
|
675 |
-
|
676 |
-
if ( isset( $options['RMClickClose'] ) && $options['RMClickClose'] == 'close' ) :
|
677 |
-
|
678 |
-
$js .= "
|
679 |
-
\$RMjQuery( '#responsive-menu ul li a' ).on( 'click', function() {
|
680 |
-
|
681 |
-
closeRM();
|
682 |
-
|
683 |
-
} );";
|
684 |
-
|
685 |
-
endif;
|
686 |
-
|
687 |
-
/*
|
688 |
-
|--------------------------------------------------------------------------
|
689 |
-
| Close Tags
|
690 |
-
|--------------------------------------------------------------------------
|
691 |
-
|
|
692 |
-
| This closes the initial document ready call
|
693 |
-
|
|
694 |
-
*/
|
695 |
-
|
696 |
-
$js .= '}); ';
|
697 |
-
|
698 |
-
/*
|
699 |
-
|--------------------------------------------------------------------------
|
700 |
-
| Strip Tags If Needed
|
701 |
-
|--------------------------------------------------------------------------
|
702 |
-
|
|
703 |
-
| Determine whether to use the <script> tags (when using internal scripts)
|
704 |
-
|
|
705 |
-
*/
|
706 |
-
|
707 |
-
$js .= $options['RMExternal'] ? '' : '</script>';
|
708 |
-
|
709 |
-
|
710 |
-
/*
|
711 |
-
|--------------------------------------------------------------------------
|
712 |
-
| Return Finished Script
|
713 |
-
|--------------------------------------------------------------------------
|
714 |
-
|
|
715 |
-
| Finally we return the final script back
|
716 |
-
|
|
717 |
-
*/
|
718 |
-
|
719 |
-
return $js;
|
720 |
-
|
721 |
-
|
722 |
-
}
|
723 |
-
|
724 |
-
|
725 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/views/admin/page.phtml
DELETED
@@ -1,2387 +0,0 @@
|
|
1 |
-
<style>
|
2 |
-
|
3 |
-
h4
|
4 |
-
{
|
5 |
-
font-weight: bold;
|
6 |
-
margin: 10px 0px;
|
7 |
-
}
|
8 |
-
|
9 |
-
h4.divider
|
10 |
-
{
|
11 |
-
color: #D44A44;
|
12 |
-
font-size: 12px;
|
13 |
-
}
|
14 |
-
|
15 |
-
h5
|
16 |
-
{
|
17 |
-
font-size: 11px;
|
18 |
-
margin: 10px 0px;
|
19 |
-
}
|
20 |
-
|
21 |
-
.numberInput
|
22 |
-
{
|
23 |
-
width: 50px;
|
24 |
-
}
|
25 |
-
|
26 |
-
textarea
|
27 |
-
{
|
28 |
-
width: 100%;
|
29 |
-
}
|
30 |
-
|
31 |
-
table
|
32 |
-
{
|
33 |
-
width: 98%;
|
34 |
-
border-left: 4px solid #7AD03A;
|
35 |
-
padding-left: 2%;
|
36 |
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
37 |
-
background: white;
|
38 |
-
padding-bottom: 15px;
|
39 |
-
}
|
40 |
-
|
41 |
-
table.inner-table
|
42 |
-
{
|
43 |
-
border: 0px;
|
44 |
-
box-shadow: none;
|
45 |
-
}
|
46 |
-
|
47 |
-
table td
|
48 |
-
{
|
49 |
-
width: 48%;
|
50 |
-
padding-right: 2%;
|
51 |
-
vertical-align: top;
|
52 |
-
}
|
53 |
-
|
54 |
-
table td .pro-option-inner
|
55 |
-
{
|
56 |
-
background: #de4b42;
|
57 |
-
color: white;
|
58 |
-
opacity: 0.8;
|
59 |
-
padding: 15px;
|
60 |
-
position: relative;
|
61 |
-
margin: 15px 0;
|
62 |
-
overflow: hidden;
|
63 |
-
}
|
64 |
-
|
65 |
-
table.pro-option-table
|
66 |
-
{
|
67 |
-
position: relative;
|
68 |
-
}
|
69 |
-
|
70 |
-
table.pro-option-table .pro-option-overlay,
|
71 |
-
table td.pro-option .pro-option-overlay
|
72 |
-
{
|
73 |
-
position: absolute;
|
74 |
-
top: 0;
|
75 |
-
bottom: 0;
|
76 |
-
left: 0;
|
77 |
-
right: 0;
|
78 |
-
background: rgba( 1, 1, 1, 0.6 );
|
79 |
-
height: 0;
|
80 |
-
overflow: hidden;
|
81 |
-
}
|
82 |
-
|
83 |
-
table.pro-option-table:hover .pro-option-overlay,
|
84 |
-
table td.pro-option:hover .pro-option-overlay
|
85 |
-
{
|
86 |
-
height: 100%;
|
87 |
-
}
|
88 |
-
|
89 |
-
table.pro-option-table .pro-option-overlay a,
|
90 |
-
table td.pro-option .pro-option-overlay a
|
91 |
-
{
|
92 |
-
position: absolute;
|
93 |
-
left: 30%;
|
94 |
-
display: block;
|
95 |
-
right: 30%;
|
96 |
-
padding: 15px 0;
|
97 |
-
width: 40%;
|
98 |
-
top: 30%;
|
99 |
-
background: #DE4B42;
|
100 |
-
font-weight: bold;
|
101 |
-
font-size: 14px;
|
102 |
-
border: 1px solid white;
|
103 |
-
border-radius: 3px;
|
104 |
-
cursor: pointer;
|
105 |
-
color: white;
|
106 |
-
text-align: center;
|
107 |
-
text-decoration: none;
|
108 |
-
}
|
109 |
-
|
110 |
-
.default
|
111 |
-
{
|
112 |
-
font-size: 8px;
|
113 |
-
font-style: italic;
|
114 |
-
}
|
115 |
-
|
116 |
-
.error
|
117 |
-
{
|
118 |
-
color: red;
|
119 |
-
}
|
120 |
-
|
121 |
-
.success
|
122 |
-
{
|
123 |
-
color: green;
|
124 |
-
}
|
125 |
-
|
126 |
-
#RMVersion
|
127 |
-
{
|
128 |
-
float: right;
|
129 |
-
border-left: 4px solid #7AD03A;
|
130 |
-
padding: 10px;
|
131 |
-
background: white;
|
132 |
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
133 |
-
}
|
134 |
-
|
135 |
-
.note
|
136 |
-
{
|
137 |
-
padding: 25px 0px 0px 0px;
|
138 |
-
color: green;
|
139 |
-
}
|
140 |
-
|
141 |
-
.button.file
|
142 |
-
{
|
143 |
-
background: white;
|
144 |
-
padding: 0px !important;
|
145 |
-
}
|
146 |
-
|
147 |
-
@media only screen and ( min-width : 0px ) and ( max-width : 600px ) {
|
148 |
-
table, table td, table tr
|
149 |
-
{
|
150 |
-
width: 100%;
|
151 |
-
display: block;
|
152 |
-
}
|
153 |
-
}
|
154 |
-
|
155 |
-
|
156 |
-
.nav-tabs .tab {
|
157 |
-
display: table-cell;
|
158 |
-
padding: 10px;
|
159 |
-
color: white;
|
160 |
-
background-color: #DE4B42;
|
161 |
-
border:#DE4B42;
|
162 |
-
border-radius: 2px 2px 0 0;
|
163 |
-
border-style: solid;
|
164 |
-
border-width: 1px;
|
165 |
-
box-sizing: border-box;
|
166 |
-
cursor: pointer;
|
167 |
-
display: inline-block;
|
168 |
-
font-size: 13px;
|
169 |
-
height: 28px;
|
170 |
-
line-height: 26px;
|
171 |
-
margin: 0;
|
172 |
-
padding: 0 10px 1px;
|
173 |
-
text-decoration: none;
|
174 |
-
white-space: nowrap;
|
175 |
-
border-bottom: 0;
|
176 |
-
}
|
177 |
-
.nav-tabs .tab.active {
|
178 |
-
background-color: #EA645D;
|
179 |
-
background: #EA645D;
|
180 |
-
color: #ffffff;
|
181 |
-
}
|
182 |
-
|
183 |
-
.nav-tabs {
|
184 |
-
border-bottom: 1px #333 white;
|
185 |
-
width: 98%;
|
186 |
-
}
|
187 |
-
|
188 |
-
.nav-tabs .tab.pro
|
189 |
-
{
|
190 |
-
background: #55B05A;
|
191 |
-
border-color: #55B05A;
|
192 |
-
}
|
193 |
-
|
194 |
-
table.pro-option-table .pro-option-overlay,
|
195 |
-
table td.pro-option .pro-option-overlay
|
196 |
-
{
|
197 |
-
transition: 0.5s all;
|
198 |
-
}
|
199 |
-
|
200 |
-
.beta-available {
|
201 |
-
background: #DE4B42;
|
202 |
-
padding: 15px 2%;
|
203 |
-
width: 96%;
|
204 |
-
position: relative;
|
205 |
-
margin-top: 15px;
|
206 |
-
}
|
207 |
-
a.beta-link {
|
208 |
-
color: white;
|
209 |
-
text-decoration: none;
|
210 |
-
}
|
211 |
-
.beta-button {
|
212 |
-
display: inline-block;
|
213 |
-
padding: 5px 15px;
|
214 |
-
background: white;
|
215 |
-
color: #DE4B42;
|
216 |
-
margin: 10px 0;
|
217 |
-
}
|
218 |
-
.beta-title {
|
219 |
-
font-size: 16px;
|
220 |
-
margin-bottom: 10px;
|
221 |
-
}
|
222 |
-
.beta-close {
|
223 |
-
position: absolute;
|
224 |
-
top: 15px;
|
225 |
-
right: 2%;
|
226 |
-
font-size: 18px;
|
227 |
-
padding: 15px;
|
228 |
-
font-weight: bold;
|
229 |
-
}
|
230 |
-
</style>
|
231 |
-
|
232 |
-
<script>
|
233 |
-
|
234 |
-
jQuery(document).ready(function ($) {
|
235 |
-
|
236 |
-
$( '.pro-option-inner, .pro-option-table' ).append( '<div class="pro-option-overlay"><a target="_blank" href="http://responsive.menu/pricing/">Upgrade now</a>');
|
237 |
-
|
238 |
-
$('.colourPicker').wpColorPicker( );
|
239 |
-
|
240 |
-
if (localStorage.rmbetaclosed) {
|
241 |
-
$('.beta-available').hide();
|
242 |
-
} else {
|
243 |
-
$(document).on('click', '.beta-close', function(e) {
|
244 |
-
e.stopPropagation();
|
245 |
-
e.preventDefault();
|
246 |
-
$('.beta-available').fadeOut();
|
247 |
-
localStorage.rmbetaclosed = "true";
|
248 |
-
});
|
249 |
-
}
|
250 |
-
|
251 |
-
|
252 |
-
var custom_uploader;
|
253 |
-
|
254 |
-
$('.RMImageButton').click(function (e) {
|
255 |
-
|
256 |
-
e.preventDefault();
|
257 |
-
window.imgFor = $(this).attr('for');
|
258 |
-
|
259 |
-
//If the uploader object has already been created, reopen the dialog
|
260 |
-
if (custom_uploader) {
|
261 |
-
|
262 |
-
custom_uploader.open();
|
263 |
-
return;
|
264 |
-
}
|
265 |
-
|
266 |
-
//Extend the wp.media object
|
267 |
-
custom_uploader = wp.media.frames.file_frame = wp.media({
|
268 |
-
title: 'Choose Image',
|
269 |
-
button: {
|
270 |
-
text: 'Choose Image',
|
271 |
-
id: 'test'
|
272 |
-
},
|
273 |
-
multiple: false
|
274 |
-
});
|
275 |
-
|
276 |
-
//When a file is selected, grab the URL and set it as the text field's value
|
277 |
-
custom_uploader.on('select', function () {
|
278 |
-
|
279 |
-
attachment = custom_uploader.state().get('selection').first().toJSON();
|
280 |
-
|
281 |
-
$('#' + window.imgFor).val(attachment.url);
|
282 |
-
|
283 |
-
});
|
284 |
-
|
285 |
-
//Open the uploader dialog
|
286 |
-
custom_uploader.open();
|
287 |
-
|
288 |
-
});
|
289 |
-
|
290 |
-
});
|
291 |
-
</script>
|
292 |
-
|
293 |
-
<script type="text/javascript">
|
294 |
-
jQuery(function () {
|
295 |
-
var $ = jQuery;
|
296 |
-
$('.tab', $('.nav-tabs')).on('click', function () {
|
297 |
-
$('.tab', $('.nav-tabs')).each(function () {
|
298 |
-
$(this).removeClass('active');
|
299 |
-
var hide = $(this).attr('data-show-tab');
|
300 |
-
$(hide).hide();
|
301 |
-
});
|
302 |
-
|
303 |
-
$(this).addClass('active');
|
304 |
-
var show = $(this).attr('data-show-tab');
|
305 |
-
$(show).show();
|
306 |
-
});
|
307 |
-
$('.tab', $('.nav-tabs')).first().trigger('click');
|
308 |
-
});
|
309 |
-
</script>
|
310 |
-
|
311 |
-
<div class="wrap">
|
312 |
-
|
313 |
-
<div id="RMVersion">
|
314 |
-
<?php _e('Version'); ?> <?php echo RM_Registry::get('config', 'current_version'); ?>
|
315 |
-
</div>
|
316 |
-
|
317 |
-
<form action="" method="post" enctype="multipart/form-data">
|
318 |
-
|
319 |
-
<input
|
320 |
-
type="submit"
|
321 |
-
class="button button-primary"
|
322 |
-
name="RMSubmit"
|
323 |
-
value="<?php _e('Update Responsive Menu Options', 'responsive-menu'); ?>"
|
324 |
-
style="display: none;"
|
325 |
-
/>
|
326 |
-
|
327 |
-
<h2><?php _e('Responsive Menu Options', 'responsive-menu'); ?></h2>
|
328 |
-
|
329 |
-
<?php
|
330 |
-
if ($status = RM_Status::get())
|
331 |
-
echo self::statusBar($status);
|
332 |
-
?>
|
333 |
-
|
334 |
-
<nav class="menu-tabs">
|
335 |
-
<ul class="nav nav-tabs">
|
336 |
-
<li class="tab active" data-show-tab=".setting">Setting</li>
|
337 |
-
<li class="tab" data-show-tab=".look-and-feel">Look & Feel</li>
|
338 |
-
<li class="tab" data-show-tab=".advanced-setting">Advanced Setting</li>
|
339 |
-
<li class="tab" data-show-tab=".import-export">Import/Export</li>
|
340 |
-
<li class="tab pro" data-show-tab=".single-menu">Single Menu [PRO]</li>
|
341 |
-
<li class="tab pro" data-show-tab=".themes">Header Bar & Themes [PRO]</li>
|
342 |
-
<li class="tab pro" data-show-tab=".custom-css">Custom CSS [PRO]</li>
|
343 |
-
</ul>
|
344 |
-
</nav>
|
345 |
-
|
346 |
-
<a target="_blank" class="button" style="background: #55B05A; color: white;" href="http://responsive.menu/pricing"><?php _e( 'Go Pro - Upgrade now for just $9.99' ); ?></a>
|
347 |
-
|
348 |
-
<a class="beta-link" href="https://downloads.wordpress.org/plugin/responsive-menu.beta.zip" />
|
349 |
-
<div class="beta-available">
|
350 |
-
<div class="beta-title">Responsive Menu 3.0 Beta now available!</div>
|
351 |
-
<div class="beta-content">Please send all bugs and feedback to support@responsive.menu.<br />
|
352 |
-
Please remember this is beta software so only use in development environments and not on a live sites.<br />
|
353 |
-
Requires PHP 5.4+</div>
|
354 |
-
<div class="beta-button">Download now</div>
|
355 |
-
<div class="beta-close">x</div>
|
356 |
-
</div>
|
357 |
-
</a>
|
358 |
-
<div class="setting">
|
359 |
-
<h3><?php _e('Meta Tag Check', 'responsive-menu'); ?></h3>
|
360 |
-
|
361 |
-
<table>
|
362 |
-
<tr>
|
363 |
-
<td>
|
364 |
-
<h4><?php _e('Recommended Metaport Tag', 'responsive-menu-pro'); ?></h4>
|
365 |
-
</td>
|
366 |
-
</tr>
|
367 |
-
<tr>
|
368 |
-
<td>
|
369 |
-
|
370 |
-
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' />
|
371 |
-
</td>
|
372 |
-
</tr>
|
373 |
-
<tr>
|
374 |
-
<td>
|
375 |
-
<h4 class="divider">
|
376 |
-
<?php _e('Note', 'responsive-menu-pro'); ?>:
|
377 |
-
<?php _e('This is only a reference guide and yours may vary slightly', 'responsive-menu-pro'); ?>.
|
378 |
-
</h4>
|
379 |
-
</td>
|
380 |
-
</tr>
|
381 |
-
</table>
|
382 |
-
|
383 |
-
<h3><?php _e('Transient Caching', 'responsive-menu'); ?></h3>
|
384 |
-
|
385 |
-
<table>
|
386 |
-
|
387 |
-
<tr>
|
388 |
-
<td>
|
389 |
-
<h4>
|
390 |
-
<?php _e('Turn on transient caching', 'responsive-menu'); ?>
|
391 |
-
</h4>
|
392 |
-
<h5>
|
393 |
-
<?php _e('Transient caching will save you ~80% on load times, however please note that this will break active links etc.', 'responsive-menu'); ?>
|
394 |
-
</h5>
|
395 |
-
|
396 |
-
<input
|
397 |
-
type="checkbox"
|
398 |
-
name="RMUseTran"
|
399 |
-
id="RMUseTran"
|
400 |
-
value="usetransient"
|
401 |
-
<?php echo isset($data['RMUseTran']) && $data['RMUseTran'] == 'usetransient' ? ' checked="checked" ' : ''; ?>
|
402 |
-
/>
|
403 |
-
|
404 |
-
</td>
|
405 |
-
</tr>
|
406 |
-
</table>
|
407 |
-
|
408 |
-
<h3><?php _e('Shortcode Support', 'responsive-menu'); ?></h3>
|
409 |
-
|
410 |
-
<table>
|
411 |
-
<tr>
|
412 |
-
<td>
|
413 |
-
|
414 |
-
<table class='inner-table'>
|
415 |
-
<tr>
|
416 |
-
<td>
|
417 |
-
<h4><?php _e('Click to use shortcode', 'responsive-menu'); ?></h4>
|
418 |
-
|
419 |
-
<h5><?php _e('Tick if you would like to use a shortcode instead of the default behaviour', 'responsive-menu'); ?></h5>
|
420 |
-
|
421 |
-
<input
|
422 |
-
type="checkbox"
|
423 |
-
name="RMShortcode"
|
424 |
-
id="RMShortcode"
|
425 |
-
value="shortcode"
|
426 |
-
<?php echo isset($data['RMShortcode']) && $data['RMShortcode'] == 'shortcode' ? ' checked="checked" ' : ''; ?>
|
427 |
-
/> [responsive-menu]
|
428 |
-
<br /><br />
|
429 |
-
</td>
|
430 |
-
</tr>
|
431 |
-
<tr>
|
432 |
-
<td colspan="2">
|
433 |
-
<?php _e("For a list of available shortcode options with explanations please visit the following page:", 'responsive-menu'); ?>
|
434 |
-
<br /><br />
|
435 |
-
<a target="_blank" href="http://responsive.menu/faq/shortcode/options/">
|
436 |
-
<?php _e("Shortcode Options"); ?>
|
437 |
-
</a>
|
438 |
-
</td>
|
439 |
-
</tr>
|
440 |
-
</table>
|
441 |
-
</td>
|
442 |
-
<td>
|
443 |
-
|
444 |
-
<h4><?php _e("Available Shortcode Options/Values"); ?></h4>
|
445 |
-
|
446 |
-
<table>
|
447 |
-
<tr>
|
448 |
-
<td><strong><?php _e("Option"); ?></strong></td>
|
449 |
-
<td><strong><?php _e("Values"); ?></strong></td>
|
450 |
-
</tr>
|
451 |
-
|
452 |
-
<?php
|
453 |
-
if (ResponsiveMenu::hasMenus()) :
|
454 |
-
|
455 |
-
$i = 0;
|
456 |
-
|
457 |
-
foreach ($menus = ResponsiveMenu::getMenus() as $menu) :
|
458 |
-
|
459 |
-
$opt = $i == 0 ? 'menu' : '';
|
460 |
-
|
461 |
-
echo '<tr><td>' . $opt . '</td><td>' . $menu->slug . '</td></tr>';
|
462 |
-
|
463 |
-
$i++;
|
464 |
-
|
465 |
-
endforeach;
|
466 |
-
|
467 |
-
echo '<tr><td colspan="2"><br /><em>e.g - [responsive-menu menu="' . $menus[0]->slug . '"]</em></td></tr>';
|
468 |
-
|
469 |
-
else :
|
470 |
-
|
471 |
-
echo '<tr><td colspan="2">' . _e("Sorry, there are no available options") . '</td></tr>';
|
472 |
-
|
473 |
-
endif;
|
474 |
-
?>
|
475 |
-
<tr>
|
476 |
-
<td><strong><?php _e("Option"); ?></strong></td>
|
477 |
-
<td><strong><?php _e("Example Value"); ?></strong></td>
|
478 |
-
</tr>
|
479 |
-
<tr>
|
480 |
-
<td>title</td>
|
481 |
-
<td>Título</td>
|
482 |
-
</tr>
|
483 |
-
<tr>
|
484 |
-
<td>title_link</td>
|
485 |
-
<td>http://mipagina.es</td>
|
486 |
-
</tr>
|
487 |
-
<tr>
|
488 |
-
<td>title_open</td>
|
489 |
-
<td>_blank</td>
|
490 |
-
</tr>
|
491 |
-
<tr>
|
492 |
-
<td>title_img</td>
|
493 |
-
<td>http://example.com/title-img-2.jpg</td>
|
494 |
-
</tr>
|
495 |
-
<tr>
|
496 |
-
<td>html</td>
|
497 |
-
<td><a href='http://www.example.com'>Example</a></td>
|
498 |
-
</tr>
|
499 |
-
<tr>
|
500 |
-
<td>html_loc</td>
|
501 |
-
<td>above</td>
|
502 |
-
</tr>
|
503 |
-
<tr>
|
504 |
-
<td>search_loc</td>
|
505 |
-
<td>below</td>
|
506 |
-
</tr>
|
507 |
-
<tr>
|
508 |
-
<td>btn_img</td>
|
509 |
-
<td>http://example.com/btn-img-2.jpg</td>
|
510 |
-
</tr>
|
511 |
-
<tr>
|
512 |
-
<td>btn_img_clicked</td>
|
513 |
-
<td>http://example.com/btn-img-clicked-2.jpg</td>
|
514 |
-
</tr>
|
515 |
-
<tr>
|
516 |
-
<td>btn_title</td>
|
517 |
-
<td>Menú</td>
|
518 |
-
</tr>
|
519 |
-
<tr>
|
520 |
-
<td> </td>
|
521 |
-
<td> </td>
|
522 |
-
</tr>
|
523 |
-
<tr>
|
524 |
-
<td colspan="2">
|
525 |
-
<em><?php _e("e.g"); ?> - [responsive-menu title="Título" title_link="http://mipagina.es"]</em>
|
526 |
-
</td>
|
527 |
-
</tr>
|
528 |
-
</table>
|
529 |
-
|
530 |
-
</td>
|
531 |
-
</tr>
|
532 |
-
|
533 |
-
</table>
|
534 |
-
|
535 |
-
<h3><?php _e( 'Mobile devices', 'responsive-menu' ); ?></h3>
|
536 |
-
|
537 |
-
<table>
|
538 |
-
<tr>
|
539 |
-
<td class="pro-option">
|
540 |
-
<div class="pro-option-inner">
|
541 |
-
<h4>
|
542 |
-
<?php _e( 'Only use Responsive Menu on mobile devices', 'responsive-menu'); ?>
|
543 |
-
</h4>
|
544 |
-
<h5>
|
545 |
-
<?php _e('This will ignore all breakpoint width settings and show the menu only on mobile devices using the wp_is_mobile() function', 'responsive-menu'); ?>
|
546 |
-
</h5>
|
547 |
-
|
548 |
-
<input
|
549 |
-
type="checkbox"
|
550 |
-
name="use_only_on_mobile"
|
551 |
-
/>
|
552 |
-
</div>
|
553 |
-
</td>
|
554 |
-
</tr>
|
555 |
-
</table>
|
556 |
-
|
557 |
-
</div>
|
558 |
-
|
559 |
-
<div class="look-and-feel">
|
560 |
-
<h3><?php _e('Click Button Settings', 'responsive-menu'); ?></h3>
|
561 |
-
|
562 |
-
<table>
|
563 |
-
|
564 |
-
<tr>
|
565 |
-
<td>
|
566 |
-
<h4><?php _e('Click Button Title', 'responsive-menu'); ?></h4>
|
567 |
-
|
568 |
-
<h5><?php _e('This is the title under the 3 lines of the click button', 'responsive-menu'); ?></h5>
|
569 |
-
|
570 |
-
<input
|
571 |
-
type="text"
|
572 |
-
name="RMClickTitle"
|
573 |
-
value="<?php echo isset($data['RMClickTitle']) ? $data['RMClickTitle'] : ''; ?>"
|
574 |
-
/>
|
575 |
-
</td>
|
576 |
-
<td>
|
577 |
-
|
578 |
-
<h4><?php _e('Click Button Image', 'responsive-menu'); ?></h4>
|
579 |
-
|
580 |
-
<h5><?php _e('This is the click button that replaces the 3 lines. If empty, the 3 lines will be used', 'responsive-menu'); ?></h5>
|
581 |
-
|
582 |
-
<input
|
583 |
-
type="text"
|
584 |
-
id="RMClickImg"
|
585 |
-
name="RMClickImg"
|
586 |
-
value="<?php echo isset($data['RMClickImg']) ? $data['RMClickImg'] : ''; ?>"
|
587 |
-
/>
|
588 |
-
|
589 |
-
<input
|
590 |
-
type="button"
|
591 |
-
id="RMImageButton"
|
592 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
593 |
-
class="button RMImageButton"
|
594 |
-
for="RMClickImg"
|
595 |
-
/>
|
596 |
-
|
597 |
-
</td>
|
598 |
-
</tr>
|
599 |
-
<tr>
|
600 |
-
<td>
|
601 |
-
<h4><?php _e('Change click menu to an X on click', 'responsive-menu'); ?></h4>
|
602 |
-
|
603 |
-
<h5>
|
604 |
-
<?php _e('Tick this if you would like the 3 lines to turn into an x once clicked', 'responsive-menu'); ?>.
|
605 |
-
</h5>
|
606 |
-
<input
|
607 |
-
type="checkbox"
|
608 |
-
name="RMX"
|
609 |
-
id="RMX"
|
610 |
-
value="rmx"
|
611 |
-
<?php echo $data['RMX'] == 'rmx' ? ' checked="checked" ' : ''; ?>
|
612 |
-
/>
|
613 |
-
</td>
|
614 |
-
<td>
|
615 |
-
|
616 |
-
<h4><?php _e('Click Button Image When Clicked', 'responsive-menu'); ?></h4>
|
617 |
-
|
618 |
-
<h5><?php _e('This is the click button image that replaces the 3 lines when clicked. If empty, the 3 lines will be used', 'responsive-menu'); ?></h5>
|
619 |
-
|
620 |
-
<input
|
621 |
-
type="text"
|
622 |
-
id="RMClickImgClicked"
|
623 |
-
name="RMClickImgClicked"
|
624 |
-
value="<?php echo isset($data['RMClickImgClicked']) ? $data['RMClickImgClicked'] : ''; ?>"
|
625 |
-
/>
|
626 |
-
|
627 |
-
<input
|
628 |
-
type="button"
|
629 |
-
id="RMClickHovImgButton"
|
630 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
631 |
-
class="button RMImageButton"
|
632 |
-
for="RMClickImgClicked"
|
633 |
-
/>
|
634 |
-
|
635 |
-
</td>
|
636 |
-
</tr>
|
637 |
-
|
638 |
-
|
639 |
-
<tr>
|
640 |
-
<td>
|
641 |
-
|
642 |
-
<h4><?php _e('Fixed Positioning', 'responsive-menu'); ?></h4>
|
643 |
-
|
644 |
-
<h5><?php _e('Tick this if you would like the click button to remain in the same place when scrolling', 'responsive-menu'); ?>.</h5>
|
645 |
-
|
646 |
-
<input
|
647 |
-
type="checkbox"
|
648 |
-
name="RMPos"
|
649 |
-
id="RMPos"
|
650 |
-
value="fixed"
|
651 |
-
<?php echo $data['RMPos'] == 'fixed' ? ' checked="checked" ' : ''; ?>
|
652 |
-
/>
|
653 |
-
|
654 |
-
</td>
|
655 |
-
<td>
|
656 |
-
|
657 |
-
<h4><?php _e('Click Trigger', 'responsive-menu'); ?></h4>
|
658 |
-
|
659 |
-
<h5><?php _e('You can set a custom ID or class for custom triggers here if you wish.', 'responsive-menu'); ?>.</h5>
|
660 |
-
|
661 |
-
<input
|
662 |
-
type="text"
|
663 |
-
name="RMTrigger"
|
664 |
-
id="RMTrigger"
|
665 |
-
value="<?php echo isset($data['RMTrigger']) ? $data['RMTrigger'] : RM_Registry::get('defaults', 'RMTrigger'); ?>"
|
666 |
-
/>
|
667 |
-
|
668 |
-
</td>
|
669 |
-
</tr>
|
670 |
-
<tr>
|
671 |
-
<td>
|
672 |
-
|
673 |
-
<h4><?php _e('Click Button Title Position', 'responsive-menu'); ?></h4>
|
674 |
-
|
675 |
-
<h5><?php _e('This defines where the menu button title is shown in relation to the 3 lines', 'responsive-menu'); ?></h5>
|
676 |
-
|
677 |
-
<select name="RMClickTitlePos">
|
678 |
-
|
679 |
-
<option
|
680 |
-
value="bottom"
|
681 |
-
<?php echo 'bottom' == $data['RMClickTitlePos'] ? 'selected="selected"' : ''; ?>>
|
682 |
-
Below
|
683 |
-
</option>
|
684 |
-
|
685 |
-
<option
|
686 |
-
value="top"
|
687 |
-
<?php echo 'top' == $data['RMClickTitlePos'] ? 'selected="selected"' : ''; ?>>
|
688 |
-
On Top
|
689 |
-
</option>
|
690 |
-
|
691 |
-
<option
|
692 |
-
value="left"
|
693 |
-
<?php echo 'left' == $data['RMClickTitlePos'] ? 'selected="selected"' : ''; ?>>
|
694 |
-
Left
|
695 |
-
</option>
|
696 |
-
|
697 |
-
<option
|
698 |
-
value="right"
|
699 |
-
<?php echo 'right' == $data['RMClickTitlePos'] ? 'selected="selected"' : ''; ?>>
|
700 |
-
Right
|
701 |
-
</option>
|
702 |
-
|
703 |
-
</select>
|
704 |
-
|
705 |
-
</td>
|
706 |
-
<td>
|
707 |
-
|
708 |
-
<h4><?php _e('Click Menu Title Height', 'responsive-menu'); ?></h4>
|
709 |
-
|
710 |
-
<h5><?php _e('This is helpful for sorting size issues with menu text set to left/right', 'responsive-menu'); ?>.</h5>
|
711 |
-
|
712 |
-
<input
|
713 |
-
type="text"
|
714 |
-
name="RMClickTitleHeight"
|
715 |
-
id="RMClickTitleHeight"
|
716 |
-
value="<?php echo isset($data['RMClickTitleHeight']) ? $data['RMClickTitleHeight'] : RM_Registry::get('defaults', 'RMClickTitleHeight'); ?>"
|
717 |
-
/>px
|
718 |
-
</td>
|
719 |
-
</tr>
|
720 |
-
</table>
|
721 |
-
|
722 |
-
<h3><?php _e('Click Button Size Settings', 'responsive-menu'); ?></h3>
|
723 |
-
|
724 |
-
<table>
|
725 |
-
<tr>
|
726 |
-
<td>
|
727 |
-
|
728 |
-
<h4><?php _e('Width', 'responsive-menu'); ?></h4>
|
729 |
-
|
730 |
-
<h5><?php _e('This is the width of the individual 3 lines', 'responsive-menu'); ?></h5>
|
731 |
-
|
732 |
-
<input
|
733 |
-
class="numberInput"
|
734 |
-
type="text"
|
735 |
-
name="RMLineWidth"
|
736 |
-
value="<?php echo isset($data['RMLineWidth']) ? $data['RMLineWidth'] : ''; ?>"
|
737 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
738 |
-
|
739 |
-
</td>
|
740 |
-
<td>
|
741 |
-
|
742 |
-
<h4><?php _e('Height', 'responsive-menu'); ?></h4>
|
743 |
-
|
744 |
-
<h5><?php _e('This is the height of the individual 3 lines', 'responsive-menu'); ?></h5>
|
745 |
-
|
746 |
-
<input
|
747 |
-
class="numberInput"
|
748 |
-
type="text"
|
749 |
-
name="RMLineHeight"
|
750 |
-
value="<?php echo isset($data['RMLineHeight']) ? $data['RMLineHeight'] : ''; ?>"
|
751 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
752 |
-
|
753 |
-
</td>
|
754 |
-
</tr>
|
755 |
-
<tr>
|
756 |
-
<td>
|
757 |
-
|
758 |
-
<h4><?php _e('Margin', 'responsive-menu'); ?></h4>
|
759 |
-
|
760 |
-
<h5><?php _e('This is the margin between the individual 3 lines', 'responsive-menu'); ?></h5>
|
761 |
-
|
762 |
-
<input
|
763 |
-
class="numberInput"
|
764 |
-
type="text"
|
765 |
-
name="RMLineMargin"
|
766 |
-
value="<?php echo isset($data['RMLineMargin']) ? $data['RMLineMargin'] : ''; ?>"
|
767 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
768 |
-
|
769 |
-
</td>
|
770 |
-
<td>
|
771 |
-
|
772 |
-
<h4></h4>
|
773 |
-
|
774 |
-
<h5></h5>
|
775 |
-
|
776 |
-
</td>
|
777 |
-
</tr>
|
778 |
-
</table>
|
779 |
-
|
780 |
-
<h3><?php _e('Click Button Location Settings', 'responsive-menu'); ?></h3>
|
781 |
-
|
782 |
-
<table>
|
783 |
-
<tr>
|
784 |
-
<td>
|
785 |
-
|
786 |
-
<h4><?php _e('Top', 'responsive-menu'); ?></h4>
|
787 |
-
|
788 |
-
<h5><?php _e('This is the distance from the top of the page in px that the click button will be displayed', 'responsive-menu'); ?></h5>
|
789 |
-
|
790 |
-
<input
|
791 |
-
class="numberInput"
|
792 |
-
type="text"
|
793 |
-
name="RMTop"
|
794 |
-
value="<?php echo isset($data['RMTop']) ? $data['RMTop'] : ''; ?>"
|
795 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
796 |
-
|
797 |
-
</td>
|
798 |
-
<td>
|
799 |
-
|
800 |
-
<h4><?php _e('Left/Right Distance', 'responsive-menu'); ?></h4>
|
801 |
-
|
802 |
-
<h5><?php _e('This is the distance from the right/left of the page (as defined below) in % that the menu will be displayed', 'responsive-menu'); ?></h5>
|
803 |
-
|
804 |
-
<input
|
805 |
-
class="numberInput"
|
806 |
-
type="text"
|
807 |
-
name="RMRight"
|
808 |
-
value="<?php echo isset($data['RMRight']) ? $data['RMRight'] : ''; ?>"
|
809 |
-
/> %
|
810 |
-
|
811 |
-
</td>
|
812 |
-
</tr>
|
813 |
-
<tr>
|
814 |
-
<td>
|
815 |
-
|
816 |
-
<h4><?php _e('Left/Right', 'responsive-menu'); ?></h4>
|
817 |
-
|
818 |
-
<h5><?php _e('This defines whether the menu button is shown as a percentage from the left or right', 'responsive-menu'); ?></h5>
|
819 |
-
|
820 |
-
<select name="RMLoc">
|
821 |
-
|
822 |
-
<option
|
823 |
-
value="left"
|
824 |
-
<?php echo 'left' == $data['RMLoc'] ? 'selected="selected"' : ''; ?>>
|
825 |
-
Left
|
826 |
-
</option>
|
827 |
-
|
828 |
-
<option
|
829 |
-
value="right"
|
830 |
-
<?php echo 'right' == $data['RMLoc'] ? 'selected="selected"' : ''; ?>>
|
831 |
-
Right
|
832 |
-
</option>
|
833 |
-
|
834 |
-
</select>
|
835 |
-
|
836 |
-
</td>
|
837 |
-
<td>
|
838 |
-
|
839 |
-
<h4></h4>
|
840 |
-
|
841 |
-
<h5></h5>
|
842 |
-
|
843 |
-
|
844 |
-
</td>
|
845 |
-
</tr>
|
846 |
-
</table>
|
847 |
-
|
848 |
-
<h3><?php _e('Menu Settings', 'responsive-menu'); ?></h3>
|
849 |
-
|
850 |
-
<table>
|
851 |
-
|
852 |
-
<tr>
|
853 |
-
<td>
|
854 |
-
|
855 |
-
<h4><?php _e('Menu Title', 'responsive-menu'); ?></h4>
|
856 |
-
|
857 |
-
<h5><?php _e('This is the title at the top of the responsive menu', 'responsive-menu'); ?></h5>
|
858 |
-
|
859 |
-
<input
|
860 |
-
type="text"
|
861 |
-
name="RMTitle"
|
862 |
-
value="<?php echo isset($data['RMTitle']) ? $data['RMTitle'] : ''; ?>"
|
863 |
-
/>
|
864 |
-
|
865 |
-
</td>
|
866 |
-
<td>
|
867 |
-
|
868 |
-
<h4><?php _e('Menu Image', 'responsive-menu'); ?></h4>
|
869 |
-
|
870 |
-
<h5><?php _e('This is the image that sits next to the responsive menu title. The best size is 32px x 32px', 'responsive-menu'); ?></h5>
|
871 |
-
|
872 |
-
<input
|
873 |
-
type="text"
|
874 |
-
id="RMImage"
|
875 |
-
name="RMImage"
|
876 |
-
value="<?php echo isset($data['RMImage']) ? $data['RMImage'] : ''; ?>"
|
877 |
-
/>
|
878 |
-
|
879 |
-
<input
|
880 |
-
type="button"
|
881 |
-
id="RMImageButton"
|
882 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
883 |
-
class="button RMImageButton"
|
884 |
-
for="RMImage"
|
885 |
-
/>
|
886 |
-
|
887 |
-
</td>
|
888 |
-
</tr>
|
889 |
-
|
890 |
-
<tr>
|
891 |
-
<td>
|
892 |
-
<h4><?php _e('Choose Menu To Responsify', 'responsive-menu'); ?></h4>
|
893 |
-
|
894 |
-
<h5><?php _e('This is the menu that will be used responsively', 'responsive-menu'); ?>.</h5>
|
895 |
-
|
896 |
-
<?php if (ResponsiveMenu::hasMenus()) : ?>
|
897 |
-
|
898 |
-
<select name="RM">
|
899 |
-
|
900 |
-
<?php foreach (ResponsiveMenu::getMenus() as $menu) : ?>
|
901 |
-
|
902 |
-
<option
|
903 |
-
value="<?php echo $menu->slug; ?>"
|
904 |
-
<?php echo $menu->slug == $data['RM'] ? 'selected="selected">' : '>'; ?>
|
905 |
-
<?php echo $menu->name; ?>
|
906 |
-
</option>
|
907 |
-
|
908 |
-
<?php endforeach; ?>
|
909 |
-
|
910 |
-
</select>
|
911 |
-
|
912 |
-
<?php else : ?>
|
913 |
-
|
914 |
-
<span style="color: red;"><?php _e("You haven't set up any site menus yet", "responsive-menu"); ?>.</span>
|
915 |
-
|
916 |
-
<?php endif; ?>
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
</td>
|
921 |
-
<td>
|
922 |
-
|
923 |
-
<h4><?php _e('Slide Side', 'responsive-menu'); ?></h4>
|
924 |
-
|
925 |
-
<h5><?php _e('This is the side of the screen from which the menu will slide', 'responsive-menu'); ?></h5>
|
926 |
-
|
927 |
-
<select name="RMSide">
|
928 |
-
|
929 |
-
<option
|
930 |
-
value="left"
|
931 |
-
<?php echo isset($data['RMSide']) && $data['RMSide'] == 'left' ? 'selected="selected"' : ''; ?>>
|
932 |
-
<?php _e('Left', 'responsive-menu'); ?>
|
933 |
-
</option>
|
934 |
-
|
935 |
-
<option
|
936 |
-
value="right"
|
937 |
-
<?php echo isset($data['RMSide']) && $data['RMSide'] == 'right' ? 'selected="selected"' : ''; ?>>
|
938 |
-
<?php _e('Right', 'responsive-menu'); ?>
|
939 |
-
</option>
|
940 |
-
|
941 |
-
<option
|
942 |
-
value="top"
|
943 |
-
<?php echo isset($data['RMSide']) && $data['RMSide'] == 'top' ? 'selected="selected"' : ''; ?>>
|
944 |
-
<?php _e('Top', 'responsive-menu'); ?>
|
945 |
-
</option>
|
946 |
-
|
947 |
-
<option
|
948 |
-
value="bottom"
|
949 |
-
<?php echo isset($data['RMSide']) && $data['RMSide'] == 'bottom' ? 'selected="selected"' : ''; ?>>
|
950 |
-
<?php _e('Bottom', 'responsive-menu'); ?>
|
951 |
-
</option>
|
952 |
-
|
953 |
-
</select>
|
954 |
-
|
955 |
-
|
956 |
-
</td>
|
957 |
-
</tr>
|
958 |
-
<tr>
|
959 |
-
<td>
|
960 |
-
|
961 |
-
<?php // Choose Theme Location Menu add by mkdgs ?>
|
962 |
-
|
963 |
-
<h4><?php _e('Choose Theme Location Menu To Responsify', 'responsive-menu'); ?></h4>
|
964 |
-
|
965 |
-
<h5><?php _e('The menu assigned to this theme location (registered with register_nav_menu) will be used for displaying the responsive menu (useful if you use a plugin like polylang)', 'responsive-menu'); ?>.</h5>
|
966 |
-
|
967 |
-
<?php if ($MenusLocations = ResponsiveMenu::getMenusLocations()) : ?>
|
968 |
-
|
969 |
-
<select name="RMThemeLocation">
|
970 |
-
<?php foreach ($MenusLocations as $location) : ?>
|
971 |
-
|
972 |
-
<option
|
973 |
-
value="<?php echo $location->location; ?>"
|
974 |
-
<?php echo $location->location == $data['RMThemeLocation'] ? 'selected="selected"' : ''; ?>>
|
975 |
-
<?php echo $location->description; ?>
|
976 |
-
</option>
|
977 |
-
|
978 |
-
<?php endforeach; ?>
|
979 |
-
|
980 |
-
<option
|
981 |
-
value=""
|
982 |
-
<?php echo ( empty($data['RMThemeLocation']) ) ? 'selected="selected"' : ''; ?>
|
983 |
-
>
|
984 |
-
<?php echo _e('None', 'responsive-menu'); ?>
|
985 |
-
</option>
|
986 |
-
|
987 |
-
</select>
|
988 |
-
|
989 |
-
<?php else : ?>
|
990 |
-
|
991 |
-
<span style="color: red;"><?php _e("You haven't set up any menus location yet", "responsive-menu"); ?>.</span>
|
992 |
-
|
993 |
-
<?php endif; ?>
|
994 |
-
|
995 |
-
</td>
|
996 |
-
|
997 |
-
<td class="pro-option">
|
998 |
-
|
999 |
-
<div class="pro-option-inner">
|
1000 |
-
|
1001 |
-
<h4><?php _e('Set auto height on menu', 'responsive-menu'); ?></h4>
|
1002 |
-
|
1003 |
-
<h5><?php _e('Tick this if you would like the menu to have the height be automatically sized', 'responsive-menu'); ?></h5>
|
1004 |
-
|
1005 |
-
<input
|
1006 |
-
type="checkbox"
|
1007 |
-
/>
|
1008 |
-
|
1009 |
-
</div>
|
1010 |
-
|
1011 |
-
</td>
|
1012 |
-
|
1013 |
-
</tr>
|
1014 |
-
<tr>
|
1015 |
-
<td>
|
1016 |
-
<h4><?php _e('Menu Title Link', 'responsive-menu'); ?></h4>
|
1017 |
-
|
1018 |
-
<h5><?php _e('This is the link location for the title', 'responsive-menu'); ?></h5>
|
1019 |
-
|
1020 |
-
<input
|
1021 |
-
type="text"
|
1022 |
-
name="RMTitleLink"
|
1023 |
-
value="<?php echo isset($data['RMTitleLink']) ? $data['RMTitleLink'] : ''; ?>"
|
1024 |
-
/>
|
1025 |
-
</td>
|
1026 |
-
<td>
|
1027 |
-
|
1028 |
-
<h4><?php _e('Menu Title Link Location', 'responsive-menu'); ?></h4>
|
1029 |
-
|
1030 |
-
<h5><?php _e('This is where your title page will be opened once clicked', 'responsive-menu'); ?></h5>
|
1031 |
-
|
1032 |
-
<select name="RMTitleLoc">
|
1033 |
-
|
1034 |
-
<option
|
1035 |
-
value="_blank"
|
1036 |
-
<?php echo isset($data['RMTitleLoc']) && $data['RMTitleLoc'] == '_blank' ? 'selected="selected"' : ''; ?>>
|
1037 |
-
<?php _e('New Tab', 'responsive-menu'); ?>
|
1038 |
-
</option>
|
1039 |
-
|
1040 |
-
<option
|
1041 |
-
value="_self"
|
1042 |
-
<?php echo isset($data['RMTitleLoc']) && $data['RMTitleLoc'] == '_self' ? 'selected="selected"' : ''; ?>>
|
1043 |
-
<?php _e('Same Page', 'responsive-menu'); ?>
|
1044 |
-
</option>
|
1045 |
-
|
1046 |
-
<option
|
1047 |
-
value="_parent"
|
1048 |
-
<?php echo isset($data['RMTitleLoc']) && $data['RMTitleLoc'] == '_parent' ? 'selected="selected"' : ''; ?>>
|
1049 |
-
<?php _e('Parent Page', 'responsive-menu'); ?>
|
1050 |
-
</option>
|
1051 |
-
|
1052 |
-
<option
|
1053 |
-
value="_top"
|
1054 |
-
<?php echo isset($data['RMTitleLoc']) && $data['RMTitleLoc'] == '_top' ? 'selected="selected"' : ''; ?>>
|
1055 |
-
<?php _e('Full Window Body', 'responsive-menu'); ?>
|
1056 |
-
</option>
|
1057 |
-
|
1058 |
-
</select>
|
1059 |
-
|
1060 |
-
</td>
|
1061 |
-
</tr>
|
1062 |
-
</table>
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
<h3><?php _e('Sub Menu Arrow Settings', 'responsive-menu'); ?></h3>
|
1067 |
-
|
1068 |
-
<table>
|
1069 |
-
<tr>
|
1070 |
-
<td>
|
1071 |
-
|
1072 |
-
<h4><?php _e('Active Geometric Shape', 'responsive-menu'); ?></h4>
|
1073 |
-
|
1074 |
-
<input
|
1075 |
-
type="text"
|
1076 |
-
name="RMArShpA"
|
1077 |
-
value="<?php echo isset($data['RMArShpA']) ? json_decode($data['RMArShpA']) : ''; ?>"
|
1078 |
-
/>
|
1079 |
-
|
1080 |
-
</td>
|
1081 |
-
<td>
|
1082 |
-
|
1083 |
-
<h4><?php _e('Inactive Geometric Shape', 'responsive-menu'); ?></h4>
|
1084 |
-
|
1085 |
-
<input
|
1086 |
-
type="text"
|
1087 |
-
name="RMArShpI"
|
1088 |
-
value="<?php echo isset($data['RMArShpI']) ? json_decode($data['RMArShpI']) : ''; ?>"
|
1089 |
-
/>
|
1090 |
-
|
1091 |
-
</td>
|
1092 |
-
</tr>
|
1093 |
-
|
1094 |
-
<tr>
|
1095 |
-
<td colspan="2">
|
1096 |
-
<h4><?php _e('You can find a list of Geometric HTML shape codes below', 'responsive-menu'); ?>:</h4>
|
1097 |
-
<a target="_blank" href="http://responsive.menu/html-geometric-shapes">http://responsive.menu/html-geometric-shapes</a>
|
1098 |
-
</td>
|
1099 |
-
</tr>
|
1100 |
-
<tr>
|
1101 |
-
<td>
|
1102 |
-
|
1103 |
-
<h4><?php _e('Active Image', 'responsive-menu'); ?></h4>
|
1104 |
-
|
1105 |
-
<input
|
1106 |
-
type="text"
|
1107 |
-
id="RMArImgA"
|
1108 |
-
name="RMArImgA"
|
1109 |
-
value="<?php echo isset($data['RMArImgA']) ? $data['RMArImgA'] : ''; ?>"
|
1110 |
-
/>
|
1111 |
-
|
1112 |
-
<input
|
1113 |
-
type="button"
|
1114 |
-
id="RMArImgABtn"
|
1115 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
1116 |
-
class="button RMImageButton"
|
1117 |
-
for="RMArImgA"
|
1118 |
-
/>
|
1119 |
-
|
1120 |
-
</td>
|
1121 |
-
<td>
|
1122 |
-
|
1123 |
-
<h4><?php _e('Inactive Image', 'responsive-menu'); ?></h4>
|
1124 |
-
|
1125 |
-
<input
|
1126 |
-
type="text"
|
1127 |
-
id="RMArImgI"
|
1128 |
-
name="RMArImgI"
|
1129 |
-
value="<?php echo isset($data['RMArImgI']) ? $data['RMArImgI'] : ''; ?>"
|
1130 |
-
/>
|
1131 |
-
|
1132 |
-
<input
|
1133 |
-
type="button"
|
1134 |
-
id="RMArImgIBtn"
|
1135 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
1136 |
-
class="button RMImageButton"
|
1137 |
-
for="RMArImgI"
|
1138 |
-
/>
|
1139 |
-
|
1140 |
-
</td>
|
1141 |
-
</tr>
|
1142 |
-
<tr>
|
1143 |
-
<td colspan="2">
|
1144 |
-
<h4 class="divider">
|
1145 |
-
<?php _e('Note'); ?>:
|
1146 |
-
<?php _e('Images have preference over shapes, to use HTML shapes please leave the image field blank', 'responsive-menu'); ?>.
|
1147 |
-
</h4>
|
1148 |
-
</td>
|
1149 |
-
</tr>
|
1150 |
-
|
1151 |
-
</table>
|
1152 |
-
|
1153 |
-
<h3><?php _e('Colour Settings', 'responsive-menu'); ?></h3>
|
1154 |
-
|
1155 |
-
<h4 class="divider"><?php _e('Background Colours', 'responsive-menu'); ?></h4>
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
<h5 class="sub-divider"><?php _e('Click Button', 'responsive-menu'); ?></h5>
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
<table>
|
1164 |
-
<tr>
|
1165 |
-
<td>
|
1166 |
-
|
1167 |
-
<h4><?php _e('Click Button Line & Text Colour', 'responsive-menu'); ?></h4>
|
1168 |
-
|
1169 |
-
<h5><?php _e('This is the colour of the 3 lines and text for the click button', 'responsive-menu'); ?></h5>
|
1170 |
-
|
1171 |
-
<input
|
1172 |
-
type="text"
|
1173 |
-
name="RMLineCol"
|
1174 |
-
id="RMLineCol"
|
1175 |
-
class="colourPicker"
|
1176 |
-
value="<?php echo isset($data['RMLineCol']) ? $data['RMLineCol'] : ''; ?>"
|
1177 |
-
/>
|
1178 |
-
|
1179 |
-
</td>
|
1180 |
-
<td>
|
1181 |
-
|
1182 |
-
<h4><?php _e('Click Button Background Colour', 'responsive-menu'); ?></h4>
|
1183 |
-
|
1184 |
-
<h5><?php _e('This is the background colour of the 3 lines container', 'responsive-menu'); ?></h5>
|
1185 |
-
|
1186 |
-
<input
|
1187 |
-
type="text"
|
1188 |
-
name="RMClickBkg"
|
1189 |
-
id="RMClickBkg"
|
1190 |
-
class="colourPicker"
|
1191 |
-
value="<?php echo isset($data['RMClickBkg']) ? $data['RMClickBkg'] : ''; ?>"
|
1192 |
-
/>
|
1193 |
-
|
1194 |
-
</td>
|
1195 |
-
</tr>
|
1196 |
-
<tr>
|
1197 |
-
<td>
|
1198 |
-
|
1199 |
-
<h4><?php _e('Click Button Background Transparent', 'responsive-menu'); ?></h4>
|
1200 |
-
|
1201 |
-
<h5><?php _e('Tick this if you would like a transparent background on the click button', 'responsive-menu'); ?></h5>
|
1202 |
-
|
1203 |
-
<input
|
1204 |
-
type="checkbox"
|
1205 |
-
name="RMBkgTran"
|
1206 |
-
id="RMBkgTran"
|
1207 |
-
value="checked"
|
1208 |
-
<?php echo $data['RMBkgTran'] == 'checked' ? ' checked="checked" ' : ''; ?>
|
1209 |
-
/>
|
1210 |
-
|
1211 |
-
</td>
|
1212 |
-
<tr>
|
1213 |
-
<td>
|
1214 |
-
</td>
|
1215 |
-
</tr>
|
1216 |
-
|
1217 |
-
</table>
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
<h5 class="sub-divider"><?php _e('Main Menu', 'responsive-menu'); ?></h5>
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
<table>
|
1226 |
-
<tr>
|
1227 |
-
<td>
|
1228 |
-
|
1229 |
-
<h4><?php _e('Menu Background Colour', 'responsive-menu'); ?></h4>
|
1230 |
-
|
1231 |
-
<h5><?php _e('This is the background colour of the expanded menu', 'responsive-menu'); ?></h5>
|
1232 |
-
|
1233 |
-
<input
|
1234 |
-
type="text"
|
1235 |
-
name="RMBkg"
|
1236 |
-
id="RMBkg"
|
1237 |
-
class="colourPicker"
|
1238 |
-
value="<?php echo isset($data['RMBkg']) ? $data['RMBkg'] : ''; ?>"
|
1239 |
-
/>
|
1240 |
-
|
1241 |
-
</td>
|
1242 |
-
<td>
|
1243 |
-
|
1244 |
-
<h4><?php _e('Menu Background Hover Colour', 'responsive-menu'); ?></h4>
|
1245 |
-
|
1246 |
-
<h5><?php _e('This is the hover background colour of the expanded menu', 'responsive-menu'); ?></h5>
|
1247 |
-
|
1248 |
-
<input
|
1249 |
-
type="text"
|
1250 |
-
name="RMBkgHov"
|
1251 |
-
id="RMBkgHov"
|
1252 |
-
class="colourPicker"
|
1253 |
-
value="<?php echo isset($data['RMBkgHov']) ? $data['RMBkgHov'] : ''; ?>"
|
1254 |
-
/>
|
1255 |
-
|
1256 |
-
</td>
|
1257 |
-
</tr>
|
1258 |
-
<tr>
|
1259 |
-
<td>
|
1260 |
-
|
1261 |
-
<h4><?php _e('Menu Link Border Colour', 'responsive-menu'); ?></h4>
|
1262 |
-
|
1263 |
-
<h5><?php _e('This is the border colour of the menu links', 'responsive-menu'); ?></h5>
|
1264 |
-
|
1265 |
-
<input
|
1266 |
-
type="text"
|
1267 |
-
name="RMBorCol"
|
1268 |
-
id="RMBorCol"
|
1269 |
-
class="colourPicker"
|
1270 |
-
value="<?php echo isset($data['RMBorCol']) ? $data['RMBorCol'] : ''; ?>"
|
1271 |
-
/>
|
1272 |
-
|
1273 |
-
</td>
|
1274 |
-
<td>
|
1275 |
-
|
1276 |
-
<h4><?php _e('Title Background Colour', 'responsive-menu'); ?></h4>
|
1277 |
-
|
1278 |
-
<h5><?php _e('This is the background colour of the menu title', 'responsive-menu'); ?></h5>
|
1279 |
-
|
1280 |
-
<input
|
1281 |
-
type="text"
|
1282 |
-
name="RMTitleBkg"
|
1283 |
-
id="RMTitleBkg"
|
1284 |
-
class="colourPicker"
|
1285 |
-
value="<?php echo isset($data['RMTitleBkg']) ? $data['RMTitleBkg'] : ''; ?>"
|
1286 |
-
/>
|
1287 |
-
|
1288 |
-
</td>
|
1289 |
-
</tr>
|
1290 |
-
<tr>
|
1291 |
-
<td>
|
1292 |
-
|
1293 |
-
<h4><?php _e('Current Page Link Background Colour', 'responsive-menu'); ?></h4>
|
1294 |
-
|
1295 |
-
<h5><?php _e('This is the background colour of the current page link', 'responsive-menu'); ?></h5>
|
1296 |
-
|
1297 |
-
<input
|
1298 |
-
type="text"
|
1299 |
-
name="RMCurBkg"
|
1300 |
-
id="RMCurBkg"
|
1301 |
-
class="colourPicker"
|
1302 |
-
value="<?php echo isset($data['RMCurBkg']) ? $data['RMCurBkg'] : ''; ?>"
|
1303 |
-
/>
|
1304 |
-
|
1305 |
-
</td>
|
1306 |
-
<td>
|
1307 |
-
|
1308 |
-
<h4><?php _e('Current Page Link Background Hover Colour', 'responsive-menu'); ?></h4>
|
1309 |
-
|
1310 |
-
<h5><?php _e('This is the hover background colour of the current page link', 'responsive-menu'); ?></h5>
|
1311 |
-
|
1312 |
-
<input
|
1313 |
-
type="text"
|
1314 |
-
name="RMCurBkgHov"
|
1315 |
-
id="RMCurBkgHov"
|
1316 |
-
class="colourPicker"
|
1317 |
-
value="<?php echo isset($data['RMCurBkgHov']) ? $data['RMCurBkgHov'] : ''; ?>"
|
1318 |
-
/>
|
1319 |
-
|
1320 |
-
</td>
|
1321 |
-
</tr>
|
1322 |
-
</table>
|
1323 |
-
|
1324 |
-
<h4 class="divider"><?php _e('Text Colours', 'responsive-menu'); ?></h4>
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
<table>
|
1329 |
-
<tr>
|
1330 |
-
|
1331 |
-
<td>
|
1332 |
-
|
1333 |
-
<h4><?php _e('Menu Title Colour', 'responsive-menu'); ?></h4>
|
1334 |
-
|
1335 |
-
<h5><?php _e('This is the text colour of the menu title', 'responsive-menu'); ?></h5>
|
1336 |
-
|
1337 |
-
<input
|
1338 |
-
type="text"
|
1339 |
-
name="RMTitleCol"
|
1340 |
-
id="RMTitleCol"
|
1341 |
-
class="colourPicker"
|
1342 |
-
value="<?php echo isset($data['RMTitleCol']) ? $data['RMTitleCol'] : ''; ?>"
|
1343 |
-
/>
|
1344 |
-
|
1345 |
-
</td>
|
1346 |
-
<td>
|
1347 |
-
|
1348 |
-
<h4><?php _e('Menu Title Hover Colour', 'responsive-menu'); ?></h4>
|
1349 |
-
|
1350 |
-
<h5><?php _e('This is the hover colour of the menu title', 'responsive-menu'); ?></h5>
|
1351 |
-
|
1352 |
-
<input
|
1353 |
-
type="text"
|
1354 |
-
name="RMTitleColHov"
|
1355 |
-
id="RMTitleColHov"
|
1356 |
-
class="colourPicker"
|
1357 |
-
value="<?php echo isset($data['RMTitleColHov']) ? $data['RMTitleColHov'] : ''; ?>"
|
1358 |
-
/>
|
1359 |
-
|
1360 |
-
</td>
|
1361 |
-
</tr>
|
1362 |
-
<tr>
|
1363 |
-
<td>
|
1364 |
-
|
1365 |
-
<h4><?php _e('Menu Link Colour', 'responsive-menu'); ?></h4>
|
1366 |
-
|
1367 |
-
<h5><?php _e('This is the text colour of the menu links', 'responsive-menu'); ?></h5>
|
1368 |
-
|
1369 |
-
<input
|
1370 |
-
type="text"
|
1371 |
-
name="RMTextCol"
|
1372 |
-
id="RMTextCol"
|
1373 |
-
class="colourPicker"
|
1374 |
-
value="<?php echo isset($data['RMTextCol']) ? $data['RMTextCol'] : ''; ?>"
|
1375 |
-
/>
|
1376 |
-
|
1377 |
-
</td>
|
1378 |
-
<td>
|
1379 |
-
|
1380 |
-
<h4><?php _e('Menu Link Hover Colour', 'responsive-menu'); ?></h4>
|
1381 |
-
|
1382 |
-
<h5><?php _e('This is the text hover colour of the menu links', 'responsive-menu'); ?></h5>
|
1383 |
-
|
1384 |
-
<input
|
1385 |
-
type="text"
|
1386 |
-
name="RMTextColHov"
|
1387 |
-
id="RMTextColHov"
|
1388 |
-
class="colourPicker"
|
1389 |
-
value="<?php echo isset($data['RMTextColHov']) ? $data['RMTextColHov'] : ''; ?>"
|
1390 |
-
/>
|
1391 |
-
|
1392 |
-
</td>
|
1393 |
-
</tr>
|
1394 |
-
|
1395 |
-
<tr>
|
1396 |
-
<td>
|
1397 |
-
|
1398 |
-
<h4><?php _e('Current Page Link Colour', 'responsive-menu'); ?></h4>
|
1399 |
-
|
1400 |
-
<h5><?php _e('This is the text colour of the current page link', 'responsive-menu'); ?></h5>
|
1401 |
-
|
1402 |
-
<input
|
1403 |
-
type="text"
|
1404 |
-
name="RMCurCol"
|
1405 |
-
id="RMCurCol"
|
1406 |
-
class="colourPicker"
|
1407 |
-
value="<?php echo isset($data['RMCurCol']) ? $data['RMCurCol'] : ''; ?>"
|
1408 |
-
/>
|
1409 |
-
|
1410 |
-
</td>
|
1411 |
-
<td>
|
1412 |
-
|
1413 |
-
<h4><?php _e('Current Page Link Hover Colour', 'responsive-menu'); ?></h4>
|
1414 |
-
|
1415 |
-
<h5><?php _e('This is the text hover colour of the current page link', 'responsive-menu'); ?></h5>
|
1416 |
-
|
1417 |
-
<input
|
1418 |
-
type="text"
|
1419 |
-
name="RMCurColHov"
|
1420 |
-
id="RMCurColHov"
|
1421 |
-
class="colourPicker"
|
1422 |
-
value="<?php echo isset($data['RMCurColHov']) ? $data['RMCurColHov'] : ''; ?>"
|
1423 |
-
/>
|
1424 |
-
|
1425 |
-
|
1426 |
-
</td>
|
1427 |
-
</tr>
|
1428 |
-
</table>
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
<h3><?php _e('Style Settings', 'responsive-menu'); ?></h3>
|
1433 |
-
|
1434 |
-
<table>
|
1435 |
-
|
1436 |
-
<tr>
|
1437 |
-
<td>
|
1438 |
-
|
1439 |
-
<h4><?php _e('Font', 'responsive-menu'); ?></h4>
|
1440 |
-
|
1441 |
-
<h5><?php _e('Enter a font name below, if empty your default site font will be used', 'responsive-menu'); ?></h5>
|
1442 |
-
|
1443 |
-
<input
|
1444 |
-
type="text"
|
1445 |
-
name="RMFont"
|
1446 |
-
value="<?php echo isset($data['RMFont']) ? $data['RMFont'] : ''; ?>"
|
1447 |
-
/>
|
1448 |
-
|
1449 |
-
</td>
|
1450 |
-
<td>
|
1451 |
-
|
1452 |
-
<h4><?php _e('Font Size', 'responsive-menu'); ?></h4>
|
1453 |
-
|
1454 |
-
<h5><?php _e('Enter a font size in pixels below', 'responsive-menu'); ?>. <span class='default'><?php _e('default', 'responsive-menu'); ?>: 13</span></h5>
|
1455 |
-
|
1456 |
-
<input
|
1457 |
-
type="text"
|
1458 |
-
name="RMFontSize"
|
1459 |
-
class="numberInput"
|
1460 |
-
value="<?php echo isset($data['RMFontSize']) ? $data['RMFontSize'] : ''; ?>"
|
1461 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1462 |
-
|
1463 |
-
</td>
|
1464 |
-
</tr>
|
1465 |
-
|
1466 |
-
<tr>
|
1467 |
-
<td>
|
1468 |
-
|
1469 |
-
<h4><?php _e('Click Button Font Size', 'responsive-menu'); ?></h4>
|
1470 |
-
|
1471 |
-
<h5><?php _e('Enter a click button font size in pixels below', 'responsive-menu'); ?>. <span class='default'><?php _e('default', 'responsive-menu'); ?>: 13</span></h5>
|
1472 |
-
|
1473 |
-
<input
|
1474 |
-
type="text"
|
1475 |
-
name="RMBtnSize"
|
1476 |
-
class="numberInput"
|
1477 |
-
value="<?php echo isset($data['RMBtnSize']) ? $data['RMBtnSize'] : ''; ?>"
|
1478 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1479 |
-
|
1480 |
-
</td>
|
1481 |
-
<td>
|
1482 |
-
|
1483 |
-
<h4><?php _e('Title Font Size', 'responsive-menu'); ?></h4>
|
1484 |
-
|
1485 |
-
<h5><?php _e('Enter a title font size in pixels below', 'responsive-menu'); ?>. <span class='default'><?php _e('default', 'responsive-menu'); ?>: 14</span></h5>
|
1486 |
-
|
1487 |
-
<input
|
1488 |
-
type="text"
|
1489 |
-
name="RMTitleSize"
|
1490 |
-
class="numberInput"
|
1491 |
-
value="<?php echo isset($data['RMTitleSize']) ? $data['RMTitleSize'] : ''; ?>"
|
1492 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1493 |
-
|
1494 |
-
</td>
|
1495 |
-
</tr>
|
1496 |
-
|
1497 |
-
<tr>
|
1498 |
-
<td>
|
1499 |
-
|
1500 |
-
<h4><?php _e('Text Alignment', 'responsive-menu'); ?></h4>
|
1501 |
-
|
1502 |
-
<h5><?php _e('Enter a text alignment option below', 'responsive-menu'); ?> <span class='default'><?php _e('default', 'responsive-menu'); ?>: <?php _e('Left', 'responsive-menu'); ?></span></h5>
|
1503 |
-
|
1504 |
-
<select name="RMTxtAlign">
|
1505 |
-
|
1506 |
-
<option
|
1507 |
-
value="left"
|
1508 |
-
<?php echo isset($data['RMTxtAlign']) && 'overlay' == $data['RMTxtAlign'] ? ' selected="selected " ' : ''; ?>>
|
1509 |
-
<?php _e('Left', 'responsive-menu'); ?>
|
1510 |
-
</option>
|
1511 |
-
<option
|
1512 |
-
value="center"
|
1513 |
-
<?php echo isset($data['RMTxtAlign']) && 'center' == $data['RMTxtAlign'] ? ' selected="selected " ' : ''; ?>>
|
1514 |
-
<?php _e('Centre', 'responsive-menu'); ?>
|
1515 |
-
</option>
|
1516 |
-
<option
|
1517 |
-
value="right"
|
1518 |
-
<?php echo isset($data['RMTxtAlign']) && 'right' == $data['RMTxtAlign'] ? ' selected="selected " ' : ''; ?>>
|
1519 |
-
<?php _e('Right', 'responsive-menu'); ?>
|
1520 |
-
</option>
|
1521 |
-
|
1522 |
-
</select>
|
1523 |
-
|
1524 |
-
</td>
|
1525 |
-
<td>
|
1526 |
-
|
1527 |
-
<h4><?php _e('Links Height', 'responsive-menu'); ?></h4>
|
1528 |
-
|
1529 |
-
<h5><?php _e('Enter a link height size in pixels below', 'responsive-menu'); ?>. <span class='default'><?php _e('default', 'responsive-menu'); ?>: 20</span></h5>
|
1530 |
-
|
1531 |
-
<input
|
1532 |
-
type="text"
|
1533 |
-
name="RMLinkHeight"
|
1534 |
-
class="numberInput"
|
1535 |
-
value="<?php echo isset($data['RMLinkHeight']) ? $data['RMLinkHeight'] : ''; ?>"
|
1536 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1537 |
-
|
1538 |
-
</td>
|
1539 |
-
</tr>
|
1540 |
-
</table>
|
1541 |
-
|
1542 |
-
<h4 class="divider">
|
1543 |
-
<strong><?php _e('Note'); ?>: </strong>
|
1544 |
-
<?php _e('Setting the below two values to the same number will give you a fixed width effect', 'responsive-menu'); ?>
|
1545 |
-
</h4>
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
<table>
|
1550 |
-
|
1551 |
-
<tr>
|
1552 |
-
<td>
|
1553 |
-
|
1554 |
-
<h4><?php _e('Minimum Width', 'responsive-menu'); ?></h4>
|
1555 |
-
|
1556 |
-
<h5><?php _e('Enter a minimum menu width size in pixels below', 'responsive-menu'); ?>.</h5>
|
1557 |
-
|
1558 |
-
<input
|
1559 |
-
type="text"
|
1560 |
-
name="RMMinWidth"
|
1561 |
-
class="numberInput"
|
1562 |
-
value="<?php echo isset($data['RMMinWidth']) ? $data['RMMinWidth'] : ''; ?>"
|
1563 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1564 |
-
|
1565 |
-
</td>
|
1566 |
-
<td>
|
1567 |
-
|
1568 |
-
<h4><?php _e('Maximum Width', 'responsive-menu'); ?></h4>
|
1569 |
-
|
1570 |
-
<h5><?php _e('Enter a maximum menu width size in pixels below', 'responsive-menu'); ?>.</h5>
|
1571 |
-
|
1572 |
-
<input
|
1573 |
-
type="text"
|
1574 |
-
name="RMMaxWidth"
|
1575 |
-
class="numberInput"
|
1576 |
-
value="<?php echo isset($data['RMMaxWidth']) ? $data['RMMaxWidth'] : ''; ?>"
|
1577 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1578 |
-
|
1579 |
-
</td>
|
1580 |
-
</tr>
|
1581 |
-
</table>
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
<h3><?php _e('Animation Settings', 'responsive-menu'); ?></h3>
|
1586 |
-
|
1587 |
-
<table>
|
1588 |
-
<tr>
|
1589 |
-
<td>
|
1590 |
-
|
1591 |
-
<h4><?php _e('Slide Animation', 'responsive-menu'); ?></h4>
|
1592 |
-
|
1593 |
-
<h5><?php _e('Choose the type of animation applied to the menu', 'responsive-menu'); ?></h5>
|
1594 |
-
|
1595 |
-
<select name="RMAnim">
|
1596 |
-
|
1597 |
-
<option
|
1598 |
-
value="overlay"
|
1599 |
-
<?php echo 'overlay' == $data['RMAnim'] ? ' selected="selected " ' : ''; ?>>
|
1600 |
-
<?php _e('Overlay', 'responsive-menu'); ?>
|
1601 |
-
</option>
|
1602 |
-
<option
|
1603 |
-
value="push"
|
1604 |
-
<?php echo 'push' == $data['RMAnim'] ? ' selected="selected " ' : ''; ?>>
|
1605 |
-
<?php _e('Push', 'responsive-menu'); ?>
|
1606 |
-
</option>
|
1607 |
-
|
1608 |
-
</select>
|
1609 |
-
|
1610 |
-
</td>
|
1611 |
-
<td>
|
1612 |
-
|
1613 |
-
<h4><?php _e('Page Wrappers CSS', 'responsive-menu'); ?></h4>
|
1614 |
-
|
1615 |
-
<h5><?php _e('This is the CSS of the wrapper you want to push when using the push animation', 'responsive-menu'); ?> (<?php _e('e.g', 'responsive-menu'); ?> - #pushWrapper)</h5>
|
1616 |
-
|
1617 |
-
<input
|
1618 |
-
type="text"
|
1619 |
-
name="RMPushCSS"
|
1620 |
-
value="<?php echo isset($data['RMPushCSS']) ? $data['RMPushCSS'] : ''; ?>"
|
1621 |
-
/>
|
1622 |
-
|
1623 |
-
</td>
|
1624 |
-
</tr>
|
1625 |
-
|
1626 |
-
<tr>
|
1627 |
-
<td>
|
1628 |
-
|
1629 |
-
<h4><?php _e('Animation Speed', 'responsive-menu'); ?></h4>
|
1630 |
-
|
1631 |
-
<h5><?php _e('Enter a speed in seconds below of the slide animation', 'responsive-menu'); ?>. <span class="default"><?php _e('default', 'responsive-menu'); ?>: 0.5</span></h5>
|
1632 |
-
|
1633 |
-
<input
|
1634 |
-
type="text"
|
1635 |
-
name="RMAnimSpd"
|
1636 |
-
class="numberInput"
|
1637 |
-
value="<?php echo isset($data['RMAnimSpd']) ? $data['RMAnimSpd'] : ''; ?>"
|
1638 |
-
/> <?php _e('seconds', 'responsive-menu'); ?>
|
1639 |
-
|
1640 |
-
</td>
|
1641 |
-
<td>
|
1642 |
-
|
1643 |
-
<h4><?php _e('Transition Speed', 'responsive-menu'); ?></h4>
|
1644 |
-
|
1645 |
-
<h5><?php _e('Enter a speed in seconds below of the hover transition effect', 'responsive-menu'); ?>. <span class="default"><?php _e('default', 'responsive-menu'); ?>: 1</span></h5>
|
1646 |
-
|
1647 |
-
<input
|
1648 |
-
type="text"
|
1649 |
-
name="RMTranSpd"
|
1650 |
-
class="numberInput"
|
1651 |
-
value="<?php echo isset($data['RMTranSpd']) ? $data['RMTranSpd'] : ''; ?>"
|
1652 |
-
/> <?php _e('seconds', 'responsive-menu'); ?>
|
1653 |
-
|
1654 |
-
</td>
|
1655 |
-
</tr>
|
1656 |
-
<tr>
|
1657 |
-
<td>
|
1658 |
-
|
1659 |
-
<h4><?php _e('Accordion Animation For Sub-Menus', 'responsive-menu'); ?></h4>
|
1660 |
-
|
1661 |
-
<h5><?php _e('Tick to enable the accordion animation for sub-menu items', 'responsive-menu'); ?>.</h5>
|
1662 |
-
|
1663 |
-
<input
|
1664 |
-
type="checkbox"
|
1665 |
-
name="RMAccordion"
|
1666 |
-
id="RMAccordion"
|
1667 |
-
value="accordion"
|
1668 |
-
<?php echo isset($data['RMAccordion']) && $data['RMAccordion'] == 'accordion' ? ' checked="checked" ' : ''; ?>
|
1669 |
-
/>
|
1670 |
-
|
1671 |
-
</td>
|
1672 |
-
<td>
|
1673 |
-
|
1674 |
-
<h4><?php _e('Push button with Animation', 'responsive-menu'); ?></h4>
|
1675 |
-
|
1676 |
-
<h5><?php _e('Tick to enable the click button to be pushed with animation', 'responsive-menu'); ?>.</h5>
|
1677 |
-
|
1678 |
-
<input
|
1679 |
-
type="checkbox"
|
1680 |
-
name="RMPushBtn"
|
1681 |
-
id="RMPushBtn"
|
1682 |
-
value="RMPushBtn"
|
1683 |
-
<?php echo isset($data['RMPushBtn']) && $data['RMPushBtn'] == 'RMPushBtn' ? ' checked="checked" ' : ''; ?>
|
1684 |
-
/>
|
1685 |
-
|
1686 |
-
|
1687 |
-
</td>
|
1688 |
-
</tr>
|
1689 |
-
|
1690 |
-
</table>
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
<h3><?php _e('Additional HTML Content Settings', 'responsive-menu'); ?></h3>
|
1695 |
-
|
1696 |
-
<table>
|
1697 |
-
|
1698 |
-
<tr>
|
1699 |
-
<td>
|
1700 |
-
|
1701 |
-
<h4><?php _e('Additional HTML Content', 'responsive-menu'); ?></h4>
|
1702 |
-
|
1703 |
-
<h5><?php _e('Enter any additional HTML you may want below, useful for advertisement banners etc. (accepts shortcodes)', 'responsive-menu'); ?></h5>
|
1704 |
-
|
1705 |
-
<textarea name="RMHtml"><?php echo isset($data['RMHtml']) ? $data['RMHtml'] : ''; ?></textarea>
|
1706 |
-
|
1707 |
-
</td>
|
1708 |
-
<td>
|
1709 |
-
|
1710 |
-
<h4><?php _e('Additional HTML Content Positioning', 'responsive-menu'); ?></h4>
|
1711 |
-
|
1712 |
-
<h5><?php _e('Select where you would like the additional HTML content to appear', 'responsive-menu'); ?></h5>
|
1713 |
-
|
1714 |
-
<select name="RMHtmlLoc">
|
1715 |
-
|
1716 |
-
<option
|
1717 |
-
value="above"
|
1718 |
-
<?php echo isset($data['RMHtmlLoc']) && 'above' == $data['RMHtmlLoc'] ? ' selected="selected " ' : ''; ?>>
|
1719 |
-
<?php _e('Above Menu Links', 'responsive-menu'); ?>
|
1720 |
-
</option>
|
1721 |
-
<option
|
1722 |
-
value="below"
|
1723 |
-
<?php echo isset($data['RMHtmlLoc']) && 'below' == $data['RMHtmlLoc'] ? ' selected="selected " ' : ''; ?>>
|
1724 |
-
<?php _e('Below Menu Links', 'responsive-menu'); ?>
|
1725 |
-
</option>
|
1726 |
-
|
1727 |
-
</select>
|
1728 |
-
|
1729 |
-
</td>
|
1730 |
-
</tr>
|
1731 |
-
|
1732 |
-
</table>
|
1733 |
-
|
1734 |
-
</div>
|
1735 |
-
|
1736 |
-
<div class="advanced-setting">
|
1737 |
-
<h3><?php _e('Menu Advanced Settings', 'responsive-menu'); ?></h4>
|
1738 |
-
|
1739 |
-
<table>
|
1740 |
-
<tr>
|
1741 |
-
<td>
|
1742 |
-
|
1743 |
-
<h4><?php _e('Menu Breakpoint', 'responsive-menu'); ?></h4>
|
1744 |
-
|
1745 |
-
<h5><?php _e('This is the point where the responsive menu will be visible in px width of the browser', 'responsive-menu'); ?></h5>
|
1746 |
-
|
1747 |
-
<input
|
1748 |
-
class="numberInput"
|
1749 |
-
type="text"
|
1750 |
-
name="RMBreak"
|
1751 |
-
value="<?php echo isset($data['RMBreak']) ? $data['RMBreak'] : ''; ?>"
|
1752 |
-
/> <?php _e('px', 'responsive-menu'); ?>
|
1753 |
-
|
1754 |
-
</td>
|
1755 |
-
<td>
|
1756 |
-
|
1757 |
-
<h4><?php _e('CSS of Menu To Hide', 'responsive-menu'); ?></h4>
|
1758 |
-
|
1759 |
-
<h5><?php _e('This is the CSS of the menu you want to hide once the responsive menu shows', 'responsive-menu'); ?> - <?php _e('e.g', 'responsive-menu'); ?> #primary-nav, .menu</h5>
|
1760 |
-
|
1761 |
-
<input
|
1762 |
-
type="text"
|
1763 |
-
name="RMCss"
|
1764 |
-
value="<?php echo isset($data['RMCss']) ? $data['RMCss'] : ''; ?>"
|
1765 |
-
/>
|
1766 |
-
|
1767 |
-
</td>
|
1768 |
-
</tr>
|
1769 |
-
|
1770 |
-
<tr>
|
1771 |
-
<td>
|
1772 |
-
|
1773 |
-
<h4><?php _e('Menu Depth', 'responsive-menu'); ?></h4>
|
1774 |
-
|
1775 |
-
<h5><?php _e('This is how deep into your menu tree will be visible (max', 'responsive-menu'); ?>5)</h5>
|
1776 |
-
|
1777 |
-
<select name="RMDepth">
|
1778 |
-
|
1779 |
-
<?php for ($i = 1; $i < 6; $i++) : ?>
|
1780 |
-
|
1781 |
-
<option
|
1782 |
-
value="<?php echo $i; ?>"
|
1783 |
-
<?php echo isset($data['RMDepth']) && $i == $data['RMDepth'] ? 'selected="selected"' : ''; ?>>
|
1784 |
-
<?php echo $i; ?>
|
1785 |
-
</option>
|
1786 |
-
|
1787 |
-
<?php endfor; ?>
|
1788 |
-
|
1789 |
-
</select>
|
1790 |
-
|
1791 |
-
</td>
|
1792 |
-
<td>
|
1793 |
-
|
1794 |
-
<h4><?php _e('Menu Width', 'responsive-menu'); ?></h4>
|
1795 |
-
|
1796 |
-
<h5><?php _e('This is the width the menu takes up across the page once expanded', 'responsive-menu'); ?>.
|
1797 |
-
<span class="default"><?php _e('default', 'responsive-menu'); ?>: 75</span>
|
1798 |
-
</h5>
|
1799 |
-
|
1800 |
-
<input
|
1801 |
-
class="numberInput"
|
1802 |
-
type="text"
|
1803 |
-
name="RMWidth"
|
1804 |
-
value="<?php echo isset($data['RMWidth']) ? $data['RMWidth'] : ''; ?>"
|
1805 |
-
/> %
|
1806 |
-
|
1807 |
-
</td>
|
1808 |
-
</tr>
|
1809 |
-
<tr>
|
1810 |
-
<td class="pro-option">
|
1811 |
-
<div class="pro-option-inner">
|
1812 |
-
<h4><?php _e('Word Wrap', 'responsive-menu'); ?></h4>
|
1813 |
-
|
1814 |
-
<h5><?php _e('Tick if you would like the link items to wrap around', 'responsive-menu'); ?></h5>
|
1815 |
-
|
1816 |
-
<input
|
1817 |
-
type="checkbox"
|
1818 |
-
/>
|
1819 |
-
</div>
|
1820 |
-
</td>
|
1821 |
-
<td></td>
|
1822 |
-
</tr>
|
1823 |
-
</table>
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
<table>
|
1828 |
-
|
1829 |
-
<tr>
|
1830 |
-
<td>
|
1831 |
-
|
1832 |
-
<h4><?php _e('Remove Search Box', 'responsive-menu'); ?></h4>
|
1833 |
-
|
1834 |
-
<h5><?php _e('Tick if you would like to remove the search box', 'responsive-menu'); ?></h5>
|
1835 |
-
|
1836 |
-
<input
|
1837 |
-
type="checkbox"
|
1838 |
-
name="RMSearch"
|
1839 |
-
id="RMSearch"
|
1840 |
-
value="search"
|
1841 |
-
<?php echo isset($data['RMSearch']) && $data['RMSearch'] == 'search' ? ' checked="checked" ' : ''; ?>
|
1842 |
-
/>
|
1843 |
-
|
1844 |
-
</td>
|
1845 |
-
<td>
|
1846 |
-
|
1847 |
-
<h4><?php _e('Search Box Positioning', 'responsive-menu'); ?></h4>
|
1848 |
-
|
1849 |
-
<h5><?php _e('Select where you would like the search box to appear', 'responsive-menu'); ?></h5>
|
1850 |
-
|
1851 |
-
<select name="RMSearchPos">
|
1852 |
-
|
1853 |
-
<option
|
1854 |
-
value="above"
|
1855 |
-
<?php echo isset($data['RMSearchPos']) && 'above' == $data['RMSearchPos'] ? ' selected="selected " ' : ''; ?>>
|
1856 |
-
<?php _e('Above Menu Links', 'responsive-menu'); ?>
|
1857 |
-
</option>
|
1858 |
-
<option
|
1859 |
-
value="below"
|
1860 |
-
<?php echo isset($data['RMSearchPos']) && 'below' == $data['RMSearchPos'] ? ' selected="selected " ' : ''; ?>>
|
1861 |
-
<?php _e('Below Menu Links', 'responsive-menu'); ?>
|
1862 |
-
</option>
|
1863 |
-
|
1864 |
-
</select>
|
1865 |
-
|
1866 |
-
</td>
|
1867 |
-
</tr>
|
1868 |
-
|
1869 |
-
<tr>
|
1870 |
-
<td class="pro-option">
|
1871 |
-
<div class="pro-option-inner">
|
1872 |
-
|
1873 |
-
<h4><?php _e('Search Box Text', 'responsive-menu'); ?></h4>
|
1874 |
-
|
1875 |
-
<h5><?php _e('This is the placeholder text that shows in the search box', 'responsive-menu'); ?></h5>
|
1876 |
-
|
1877 |
-
<input
|
1878 |
-
type="text"
|
1879 |
-
value="Search"
|
1880 |
-
/>
|
1881 |
-
</div>
|
1882 |
-
</td>
|
1883 |
-
<td>
|
1884 |
-
|
1885 |
-
</td>
|
1886 |
-
</tr>
|
1887 |
-
|
1888 |
-
<tr>
|
1889 |
-
<td>
|
1890 |
-
<h4><?php _e('Click to Close Menu on Link Click', 'responsive-menu'); ?></h4>
|
1891 |
-
|
1892 |
-
<h5><?php _e('Tick if you would like to close the menu on each link click, useful for single page sites', 'responsive-menu'); ?></h5>
|
1893 |
-
|
1894 |
-
<input
|
1895 |
-
type="checkbox"
|
1896 |
-
name="RMClickClose"
|
1897 |
-
id="RMClickClose"
|
1898 |
-
value="close"
|
1899 |
-
<?php echo isset($data['RMClickClose']) && $data['RMClickClose'] == 'close' ? ' checked="checked" ' : ''; ?>
|
1900 |
-
/>
|
1901 |
-
|
1902 |
-
|
1903 |
-
</td>
|
1904 |
-
<td>
|
1905 |
-
<h4><?php _e('Auto Expand Current Parent Items', 'responsive-menu'); ?></h4>
|
1906 |
-
|
1907 |
-
<h5><?php _e('Tick if you would like to make the current pages children expanded automatically', 'responsive-menu'); ?></h5>
|
1908 |
-
|
1909 |
-
<input
|
1910 |
-
type="checkbox"
|
1911 |
-
name="RMExpandPar"
|
1912 |
-
id="RMExpandPar"
|
1913 |
-
value="expand"
|
1914 |
-
<?php echo isset($data['RMExpandPar']) && $data['RMExpandPar'] == 'expand' ? ' checked="checked" ' : ''; ?>
|
1915 |
-
/>
|
1916 |
-
</td>
|
1917 |
-
</tr>
|
1918 |
-
|
1919 |
-
<tr>
|
1920 |
-
<td>
|
1921 |
-
<h4><?php _e('Auto Expand Sub-Menus', 'responsive-menu'); ?></h4>
|
1922 |
-
|
1923 |
-
<h5><?php _e('Tick if you would like sub-menus to be automatically expanded', 'responsive-menu'); ?></h5>
|
1924 |
-
|
1925 |
-
<input
|
1926 |
-
type="checkbox"
|
1927 |
-
name="RMExpand"
|
1928 |
-
id="RMExpand"
|
1929 |
-
value="expand"
|
1930 |
-
<?php echo isset($data['RMExpand']) && $data['RMExpand'] == 'expand' ? ' checked="checked" ' : ''; ?>
|
1931 |
-
/>
|
1932 |
-
|
1933 |
-
|
1934 |
-
</td>
|
1935 |
-
<td>
|
1936 |
-
<h4><?php _e('Ignore Parent Clicks', 'responsive-menu'); ?></h4>
|
1937 |
-
|
1938 |
-
<h5><?php _e('Tick if you would like to ignore clicks on parent links', 'responsive-menu'); ?></h5>
|
1939 |
-
|
1940 |
-
<input
|
1941 |
-
type="checkbox"
|
1942 |
-
name="RMIgnParCli"
|
1943 |
-
id="RMIgnParCli"
|
1944 |
-
value="ignoreparentclick"
|
1945 |
-
<?php echo isset($data['RMIgnParCli']) && $data['RMIgnParCli'] == 'ignoreparentclick' ? ' checked="checked" ' : ''; ?>
|
1946 |
-
/>
|
1947 |
-
</td>
|
1948 |
-
</tr>
|
1949 |
-
|
1950 |
-
<tr>
|
1951 |
-
<td>
|
1952 |
-
<h4><?php _e('Click to Close Menu on Page Click', 'responsive-menu'); ?></h4>
|
1953 |
-
|
1954 |
-
<h5><?php _e('Tick if you would like to close the current menu on page clicks', 'responsive-menu'); ?></h5>
|
1955 |
-
|
1956 |
-
<input
|
1957 |
-
type="checkbox"
|
1958 |
-
name="RMCliToClo"
|
1959 |
-
id="RMCliToClo"
|
1960 |
-
value="clicktoclose"
|
1961 |
-
<?php echo isset($data['RMCliToClo']) && $data['RMCliToClo'] == 'clicktoclose' ? ' checked="checked" ' : ''; ?>
|
1962 |
-
/>
|
1963 |
-
|
1964 |
-
|
1965 |
-
</td>
|
1966 |
-
<td class="pro-option">
|
1967 |
-
<div class="pro-option-inner">
|
1968 |
-
<h4><?php _e('Disable background scrolling when Menu is active', 'responsive-menu'); ?></h4>
|
1969 |
-
|
1970 |
-
<h5><?php _e('This will create a background overlay and disable scrolling', 'responsive-menu'); ?></h5>
|
1971 |
-
|
1972 |
-
<input
|
1973 |
-
type="checkbox"
|
1974 |
-
/>
|
1975 |
-
</div>
|
1976 |
-
|
1977 |
-
</td>
|
1978 |
-
</tr>
|
1979 |
-
|
1980 |
-
</table>
|
1981 |
-
|
1982 |
-
<h3><?php _e('Technical Settings', 'responsive-menu'); ?></h3>
|
1983 |
-
|
1984 |
-
<table>
|
1985 |
-
<tr>
|
1986 |
-
<td>
|
1987 |
-
|
1988 |
-
<h4><?php _e('Minify output', 'responsive-menu'); ?></h4>
|
1989 |
-
|
1990 |
-
<h5><?php _e('Tick if you would like to minify the script/style output. Saves up to 50% in file size', 'responsive-menu'); ?></h5>
|
1991 |
-
|
1992 |
-
<input
|
1993 |
-
type="checkbox"
|
1994 |
-
name="RMMinify"
|
1995 |
-
id="RMMinify"
|
1996 |
-
value="minify"
|
1997 |
-
<?php echo isset($data['RMMinify']) && $data['RMMinify'] == 'minify' ? ' checked="checked" ' : ''; ?>
|
1998 |
-
/>
|
1999 |
-
|
2000 |
-
</td>
|
2001 |
-
<td>
|
2002 |
-
|
2003 |
-
<h4><?php _e('Include script in footer', 'responsive-menu'); ?></h4>
|
2004 |
-
|
2005 |
-
<h5><?php _e('Tick if you would like to include your jQuery script in footer', 'responsive-menu'); ?></h5>
|
2006 |
-
|
2007 |
-
<input
|
2008 |
-
type="checkbox"
|
2009 |
-
name="RMFooter"
|
2010 |
-
id="RMFooter"
|
2011 |
-
value="footer"
|
2012 |
-
<?php echo isset($data['RMFooter']) && $data['RMFooter'] == 'footer' ? ' checked="checked" ' : ''; ?>
|
2013 |
-
/>
|
2014 |
-
|
2015 |
-
</td>
|
2016 |
-
</tr>
|
2017 |
-
<tr>
|
2018 |
-
<td>
|
2019 |
-
<h4><?php _e('Include CSS/JS as external files', 'responsive-menu'); ?></h4>
|
2020 |
-
|
2021 |
-
<h5><?php _e('Tick if you would like to include CSS and jQuery as external files', 'responsive-menu'); ?></h5>
|
2022 |
-
|
2023 |
-
<input
|
2024 |
-
type="checkbox"
|
2025 |
-
name="RMExternal"
|
2026 |
-
id="RMExternal"
|
2027 |
-
value="external"
|
2028 |
-
<?php echo isset($data['RMExternal']) && $data['RMExternal'] == 'external' ? ' checked="checked" ' : ''; ?>
|
2029 |
-
/>
|
2030 |
-
</td>
|
2031 |
-
<td>
|
2032 |
-
<h4><?php _e('Remove CSS !important tags', 'responsive-menu'); ?></h4>
|
2033 |
-
|
2034 |
-
<h5>
|
2035 |
-
<?php _e('Tick this if you would like to remove the !important tags from the CSS', 'responsive-menu'); ?>.
|
2036 |
-
<?php _e('Ticking this will make it easier to over-ride the styles but may make the default settings not display well', 'responsive-menu'); ?>
|
2037 |
-
</h5>
|
2038 |
-
<input
|
2039 |
-
type="checkbox"
|
2040 |
-
name="RMRemImp"
|
2041 |
-
id="RMRemImp"
|
2042 |
-
value="remove"
|
2043 |
-
<?php echo $data['RMRemImp'] == 'remove' ? ' checked="checked" ' : ''; ?>
|
2044 |
-
/>
|
2045 |
-
</td>
|
2046 |
-
</tr>
|
2047 |
-
|
2048 |
-
</table>
|
2049 |
-
|
2050 |
-
<h3><?php _e('Custom Walker', 'responsive-menu'); ?></h3>
|
2051 |
-
|
2052 |
-
<table>
|
2053 |
-
|
2054 |
-
<!-- Add by Mkdgs -->
|
2055 |
-
<tr>
|
2056 |
-
<td>
|
2057 |
-
|
2058 |
-
<h4><?php _e('Specify you own Walker for the menu (wp_nav_menu parameter)', 'responsive-menu'); ?></h4>
|
2059 |
-
<h5><?php _e('For advanced users only - if you don\'t know what you\'re doing please leave alone', 'responsive-menu'); ?></h5>
|
2060 |
-
|
2061 |
-
<input name="RMWalker" type="text"
|
2062 |
-
value="<?php echo isset($data['RMWalker']) ? $data['RMWalker'] : ''; ?>" />
|
2063 |
-
|
2064 |
-
</td>
|
2065 |
-
|
2066 |
-
<td>
|
2067 |
-
|
2068 |
-
</td>
|
2069 |
-
</tr>
|
2070 |
-
|
2071 |
-
</table>
|
2072 |
-
</div>
|
2073 |
-
<div class="import-export">
|
2074 |
-
|
2075 |
-
<h3>Import Options</h3>
|
2076 |
-
|
2077 |
-
<table>
|
2078 |
-
|
2079 |
-
<tr>
|
2080 |
-
|
2081 |
-
<td>
|
2082 |
-
<br />
|
2083 |
-
|
2084 |
-
<input
|
2085 |
-
type="file"
|
2086 |
-
class="button file"
|
2087 |
-
name="RMImportFile"
|
2088 |
-
value="<?php _e('Import File', 'responsive-menu-pro'); ?>"
|
2089 |
-
/>
|
2090 |
-
|
2091 |
-
<input
|
2092 |
-
type="submit"
|
2093 |
-
class="button"
|
2094 |
-
name="RMImport"
|
2095 |
-
value="<?php _e('Import Options From XML', 'responsive-menu-pro'); ?>"
|
2096 |
-
/>
|
2097 |
-
</td>
|
2098 |
-
|
2099 |
-
</tr>
|
2100 |
-
|
2101 |
-
</table>
|
2102 |
-
|
2103 |
-
<h3>Export Options</h3>
|
2104 |
-
|
2105 |
-
<table>
|
2106 |
-
|
2107 |
-
<tr>
|
2108 |
-
<td>
|
2109 |
-
<br />
|
2110 |
-
<input
|
2111 |
-
type="submit"
|
2112 |
-
class="button"
|
2113 |
-
name="RMExport"
|
2114 |
-
value="<?php _e('Export Current Options', 'responsive-menu-pro'); ?>"
|
2115 |
-
/>
|
2116 |
-
</td>
|
2117 |
-
</tr>
|
2118 |
-
</table>
|
2119 |
-
|
2120 |
-
<h3>Reset to defaults</h3>
|
2121 |
-
|
2122 |
-
<table>
|
2123 |
-
|
2124 |
-
<tr>
|
2125 |
-
|
2126 |
-
<td>
|
2127 |
-
<h4 class="divider">
|
2128 |
-
<?php _e('Note'); ?>:
|
2129 |
-
<?php _e('Please be warned this will reset all your current settings, please export your current files first', 'responsive-menu-pro'); ?>.
|
2130 |
-
</h4>
|
2131 |
-
<input
|
2132 |
-
type="submit"
|
2133 |
-
class="button"
|
2134 |
-
name="RMReset"
|
2135 |
-
value="<?php _e('Reset ALL Current Options', 'responsive-menu' ); ?>"
|
2136 |
-
/>
|
2137 |
-
|
2138 |
-
</td>
|
2139 |
-
|
2140 |
-
</tr>
|
2141 |
-
|
2142 |
-
</table>
|
2143 |
-
|
2144 |
-
</div>
|
2145 |
-
|
2146 |
-
<div class="single-menu">
|
2147 |
-
|
2148 |
-
<h3><?php _e('Use Responsive Menu as your only site menu', 'responsive-menu'); ?></h3>
|
2149 |
-
|
2150 |
-
<table class="pro-option-table">
|
2151 |
-
|
2152 |
-
<tr>
|
2153 |
-
<td>
|
2154 |
-
<h4>
|
2155 |
-
<?php _e('Turn on single menu option', 'responsive-menu'); ?>
|
2156 |
-
</h4>
|
2157 |
-
<h5>
|
2158 |
-
<?php _e('This will replace your whole site menu and just use this plugin to control the menu on your whole site.', 'responsive-menu'); ?>
|
2159 |
-
<h4 class="divider">
|
2160 |
-
<?php _e('Note', 'responsive-menu'); ?>:
|
2161 |
-
<?php _e('You must not be using the mobile only option and must use the shortcode for this to work', 'responsive-menu-pro'); ?>.
|
2162 |
-
</h4>
|
2163 |
-
</h5>
|
2164 |
-
|
2165 |
-
<input
|
2166 |
-
type="checkbox"
|
2167 |
-
/>
|
2168 |
-
|
2169 |
-
</td>
|
2170 |
-
</tr>
|
2171 |
-
<tr>
|
2172 |
-
<td>
|
2173 |
-
|
2174 |
-
<h4><?php _e('Menu Height', 'responsive-menu'); ?></h4>
|
2175 |
-
|
2176 |
-
<h5><?php _e('Enter the height you wish for the menu and links', 'responsive-menu'); ?>.</h5>
|
2177 |
-
|
2178 |
-
<input
|
2179 |
-
type="text"
|
2180 |
-
class="numberInput"
|
2181 |
-
|
2182 |
-
</td>
|
2183 |
-
<td></td>
|
2184 |
-
</tr>
|
2185 |
-
<tr>
|
2186 |
-
<td>
|
2187 |
-
|
2188 |
-
<h4><?php _e('Single Menu Link Colour', 'responsive-menu'); ?></h4>
|
2189 |
-
|
2190 |
-
<h5><?php _e('This is the colour of the single menu links', 'responsive-menu'); ?></h5>
|
2191 |
-
|
2192 |
-
<input
|
2193 |
-
type="text"
|
2194 |
-
class="colourPicker"
|
2195 |
-
/>
|
2196 |
-
</td>
|
2197 |
-
<td>
|
2198 |
-
|
2199 |
-
<h4><?php _e('Single Menu Link Hover Colour', 'responsive-menu'); ?></h4>
|
2200 |
-
|
2201 |
-
<h5><?php _e('This is the hover colour of the single menu links', 'responsive-menu'); ?></h5>
|
2202 |
-
|
2203 |
-
<input
|
2204 |
-
type="text"
|
2205 |
-
class="colourPicker"
|
2206 |
-
/>
|
2207 |
-
</td>
|
2208 |
-
</tr>
|
2209 |
-
</table>
|
2210 |
-
|
2211 |
-
</div>
|
2212 |
-
|
2213 |
-
<div class="themes">
|
2214 |
-
|
2215 |
-
<h3><?php _e( 'Header Bar', 'responsive-menu' ); ?></h3>
|
2216 |
-
|
2217 |
-
<table class="pro-option-table">
|
2218 |
-
|
2219 |
-
<tr>
|
2220 |
-
<td>
|
2221 |
-
<h4>
|
2222 |
-
<?php _e( 'Create header bar for use with Responsive Menu', 'responsive-menu' ); ?>
|
2223 |
-
</h4>
|
2224 |
-
<h5>
|
2225 |
-
<?php _e('This will create a sticky header bar that follows you down the page with the menu and logo', 'responsive-menu'); ?>
|
2226 |
-
</h5>
|
2227 |
-
|
2228 |
-
<input
|
2229 |
-
type="checkbox"
|
2230 |
-
/>
|
2231 |
-
|
2232 |
-
</td>
|
2233 |
-
</tr>
|
2234 |
-
|
2235 |
-
<tr>
|
2236 |
-
<td><h4><?php _e( 'Header Bar Logo/HTML' ); ?></h4></td>
|
2237 |
-
</tr>
|
2238 |
-
<tr>
|
2239 |
-
<td>
|
2240 |
-
<h4><?php _e('Header Bar Logo', 'responsive-menu'); ?></h4>
|
2241 |
-
|
2242 |
-
<h5><?php _e('This is the header bar logo that is displayed on the bar', 'responsive-menu'); ?></h5>
|
2243 |
-
|
2244 |
-
<input
|
2245 |
-
type="text"
|
2246 |
-
id="header_bar_logo"
|
2247 |
-
/>
|
2248 |
-
|
2249 |
-
<input
|
2250 |
-
type="button"
|
2251 |
-
value="<?php _e('Upload Image', 'responsive-menu'); ?>"
|
2252 |
-
class="button RMImageButton"
|
2253 |
-
for="header_bar_logo"
|
2254 |
-
/>
|
2255 |
-
|
2256 |
-
</td>
|
2257 |
-
|
2258 |
-
<td>
|
2259 |
-
<h4><?php _e('Header Bar HTML Content', 'responsive-menu'); ?></h4>
|
2260 |
-
|
2261 |
-
<h5><?php _e('You can set HTML in the header bar instead of the logo', 'responsive-menu'); ?></h5>
|
2262 |
-
|
2263 |
-
<textarea></textarea>
|
2264 |
-
|
2265 |
-
</td>
|
2266 |
-
|
2267 |
-
</tr>
|
2268 |
-
|
2269 |
-
<tr>
|
2270 |
-
<td>
|
2271 |
-
|
2272 |
-
<h4><?php _e('Header Bar Logo Link', 'responsive-menu'); ?></h4>
|
2273 |
-
|
2274 |
-
<h5><?php _e('This is the header bar logo link', 'responsive-menu'); ?></h5>
|
2275 |
-
|
2276 |
-
<input
|
2277 |
-
type="text"
|
2278 |
-
/>
|
2279 |
-
|
2280 |
-
</td>
|
2281 |
-
<td>
|
2282 |
-
</td>
|
2283 |
-
</tr>
|
2284 |
-
|
2285 |
-
<tr>
|
2286 |
-
<td><h4><?php _e( 'Size & Colour Settings' ); ?></h4></td>
|
2287 |
-
</tr>
|
2288 |
-
<tr>
|
2289 |
-
<td>
|
2290 |
-
|
2291 |
-
<h4><?php _e('Header Bar Height', 'responsive-menu'); ?></h4>
|
2292 |
-
<h5><?php _e('This is the header bar height', 'responsive-menu'); ?></h5>
|
2293 |
-
|
2294 |
-
<input
|
2295 |
-
type="text"
|
2296 |
-
/> px
|
2297 |
-
|
2298 |
-
</td>
|
2299 |
-
|
2300 |
-
<td>
|
2301 |
-
<h4><?php _e('Header Bar Background Colour', 'responsive-menu'); ?></h4>
|
2302 |
-
|
2303 |
-
<h5><?php _e('This is the background colour for the header bar', 'responsive-menu'); ?></h5>
|
2304 |
-
|
2305 |
-
<input
|
2306 |
-
type="text"
|
2307 |
-
class="colourPicker"
|
2308 |
-
/>
|
2309 |
-
|
2310 |
-
</td>
|
2311 |
-
|
2312 |
-
</tr>
|
2313 |
-
|
2314 |
-
</table>
|
2315 |
-
|
2316 |
-
<h3><?php _e( 'Themes', 'responsive-menu' ); ?></h3>
|
2317 |
-
|
2318 |
-
<table class="pro-option-table">
|
2319 |
-
|
2320 |
-
<tr>
|
2321 |
-
<td>
|
2322 |
-
<h4>
|
2323 |
-
<?php _e( 'Apply preset colour schemes to your Responsive Menu', 'responsive-menu' ); ?>
|
2324 |
-
</h4>
|
2325 |
-
<h5>
|
2326 |
-
<?php _e('This will replace all your current colours only and will not touch other settings', 'responsive-menu'); ?>
|
2327 |
-
</h5>
|
2328 |
-
|
2329 |
-
<select name="theme">
|
2330 |
-
<option value="blue">Blue</option>
|
2331 |
-
<option value="red">Red</option>
|
2332 |
-
<option value="green">Green</option>
|
2333 |
-
<option value="yellow">Yellow</option>
|
2334 |
-
<option value="default">Default</option>
|
2335 |
-
</select>
|
2336 |
-
|
2337 |
-
<input
|
2338 |
-
type="submit"
|
2339 |
-
class="button"
|
2340 |
-
value="Update Theme"
|
2341 |
-
/>
|
2342 |
-
|
2343 |
-
</td>
|
2344 |
-
</tr>
|
2345 |
-
|
2346 |
-
</table>
|
2347 |
-
|
2348 |
-
</div>
|
2349 |
-
|
2350 |
-
<div class="custom-css">
|
2351 |
-
|
2352 |
-
<h3><?php _e( 'Custom CSS/HTML', 'responsive-menu' ); ?></h3>
|
2353 |
-
|
2354 |
-
<table class="pro-option-table">
|
2355 |
-
|
2356 |
-
<tr>
|
2357 |
-
|
2358 |
-
<td>
|
2359 |
-
<h4><?php _e('Custom CSS', 'responsive-menu'); ?></h4>
|
2360 |
-
|
2361 |
-
<h5><?php _e('These will be the final CSS rules applied to the Responsive Menu and are upgrade proof', 'responsive-menu'); ?></h5>
|
2362 |
-
|
2363 |
-
<textarea rows="15"></textarea>
|
2364 |
-
|
2365 |
-
</td>
|
2366 |
-
|
2367 |
-
</tr>
|
2368 |
-
|
2369 |
-
</table>
|
2370 |
-
|
2371 |
-
</div>
|
2372 |
-
|
2373 |
-
<br /><br />
|
2374 |
-
|
2375 |
-
<input
|
2376 |
-
type="submit"
|
2377 |
-
class="button button-primary"
|
2378 |
-
name="RMSubmit"
|
2379 |
-
value="<?php _e('Update Responsive Menu Options', 'responsive-menu'); ?>"
|
2380 |
-
/>
|
2381 |
-
|
2382 |
-
<a target="_blank" class="button" style="background: #55B05A; color: white;" href="http://responsive.menu/pricing"><?php _e( 'Go Pro - Upgrade now for just $9.99' ); ?></a>
|
2383 |
-
|
2384 |
-
|
2385 |
-
</form>
|
2386 |
-
|
2387 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/views/click-button.phtml
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
<!-- Added by Responsive Menu Plugin for WordPress - http://responsive.menu -->
|
2 |
-
|
3 |
-
|
4 |
-
<?php
|
5 |
-
if($data['RMClickTitlePos'] == 'left' || $data['RMClickTitlePos'] == 'right')
|
6 |
-
$title_pos_class = 'threelines-float-left';
|
7 |
-
else
|
8 |
-
$title_pos_class = '';
|
9 |
-
?>
|
10 |
-
|
11 |
-
<div id="click-menu"
|
12 |
-
class="<?php echo is_admin_bar_showing() ? 'admin-bar-showing ' : ''; ?>
|
13 |
-
<?php echo $data['RMAnim']; ?>"
|
14 |
-
role="button"
|
15 |
-
aria-label="Responsive Menu Button"
|
16 |
-
>
|
17 |
-
|
18 |
-
<?php if( $data['RMClickTitle'] && ( $data['RMClickTitlePos'] == 'top' || $data['RMClickTitlePos'] == 'left' ) ) : ?>
|
19 |
-
|
20 |
-
<div id="click-menu-label" class="click-menu-label-<?php echo $data['RMClickTitlePos']; ?>"><?php echo $data['RMClickTitle']; ?></div>
|
21 |
-
|
22 |
-
<?php endif; ?>
|
23 |
-
|
24 |
-
<?php if( $data['RMX'] || $data['RMClickImgClicked'] ) : ?>
|
25 |
-
|
26 |
-
<?php if( $data['RMClickImgClicked'] ) : ?>
|
27 |
-
|
28 |
-
<img
|
29 |
-
src="<?php echo $data['RMClickImgClicked']; ?>"
|
30 |
-
class="click-menu-image rm-img-clicked <?php echo 'click-menu-float-' . $data['RMClickTitlePos']; ?>"
|
31 |
-
alt="Responsive Menu Image"
|
32 |
-
title="Responsive Menu Image" />
|
33 |
-
|
34 |
-
<?php else : ?>
|
35 |
-
|
36 |
-
<div class="threeLines <?php echo $title_pos_class; ?>" id="RMX">×</div>
|
37 |
-
|
38 |
-
<?php endif; ?>
|
39 |
-
|
40 |
-
<?php endif; ?>
|
41 |
-
|
42 |
-
<?php if( !$data['RMClickImg'] ) : ?>
|
43 |
-
|
44 |
-
<div class="threeLines <?php echo $title_pos_class; ?>" id="RM3Lines">
|
45 |
-
<div class="line"></div>
|
46 |
-
<div class="line"></div>
|
47 |
-
<div class="line"></div>
|
48 |
-
</div>
|
49 |
-
|
50 |
-
<?php else : ?>
|
51 |
-
|
52 |
-
<img
|
53 |
-
src="<?php echo $data['RMClickImg']; ?>"
|
54 |
-
class="click-menu-image rm-img-to-click <?php echo 'click-menu-float-' . $data['RMClickTitlePos']; ?>"
|
55 |
-
alt="Responsive Menu Clicked Image"
|
56 |
-
title="Responsive Menu Clicked Image" />
|
57 |
-
|
58 |
-
<?php endif; ?>
|
59 |
-
|
60 |
-
<?php if( $data['RMClickTitle'] && ($data['RMClickTitlePos'] == 'bottom' || $data['RMClickTitlePos'] == 'right' ) ) : ?>
|
61 |
-
|
62 |
-
<div id="click-menu-label" class="click-menu-label-<?php echo $data['RMClickTitlePos']; ?>"><?php echo $data['RMClickTitle']; ?></div>
|
63 |
-
|
64 |
-
<?php endif; ?>
|
65 |
-
|
66 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/views/menu.phtml
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<!-- Added by Responsive Menu Plugin for WordPress - http://responsive.menu -->
|
2 |
-
|
3 |
-
<div id="responsive-menu" <?php echo is_admin_bar_showing() ? 'class="admin-bar-showing"' : ''; ?>>
|
4 |
-
|
5 |
-
<?php if( $data['RMTitle'] || $data['RMImage'] ) : ?>
|
6 |
-
|
7 |
-
<div id="responsive-menu-title">
|
8 |
-
|
9 |
-
<?php if( $data['RMImage'] ) : ?>
|
10 |
-
|
11 |
-
<?php if( isset( $data['RMTitleLink'] ) && !empty( $data['RMTitleLink'] ) ) : ?>
|
12 |
-
|
13 |
-
<a href="<?php echo $data['RMTitleLink']; ?>" target="<?php echo $data['RMTitleLoc']; ?>">
|
14 |
-
|
15 |
-
<?php endif; ?>
|
16 |
-
|
17 |
-
<img src="<?php echo $data['RMImage']; ?>"
|
18 |
-
class="RMImage"
|
19 |
-
alt="<?php echo $data['RMTitle']; ?>"
|
20 |
-
title="<?php echo $data['RMTitle']; ?>" />
|
21 |
-
|
22 |
-
<?php if( isset( $data['RMTitleLink'] ) && !empty( $data['RMTitleLink'] ) ) : ?>
|
23 |
-
|
24 |
-
</a>
|
25 |
-
|
26 |
-
<?php endif; ?>
|
27 |
-
|
28 |
-
<?php endif; ?>
|
29 |
-
|
30 |
-
<?php if( isset( $data['RMTitleLink'] ) && !empty( $data['RMTitleLink'] ) ) : ?>
|
31 |
-
|
32 |
-
<a href="<?php echo $data['RMTitleLink']; ?>" target="<?php echo $data['RMTitleLoc']; ?>">
|
33 |
-
|
34 |
-
<?php endif; ?>
|
35 |
-
|
36 |
-
<?php echo $data['RMTitle']; ?>
|
37 |
-
|
38 |
-
<?php if( isset( $data['RMTitleLink'] ) && !empty( $data['RMTitleLink'] ) ) : ?>
|
39 |
-
|
40 |
-
</a>
|
41 |
-
|
42 |
-
<?php endif; ?>
|
43 |
-
|
44 |
-
</div>
|
45 |
-
|
46 |
-
<?php endif;
|
47 |
-
|
48 |
-
if( isset( $data['RMHtml'] ) && !empty( $data['RMHtml'] ) && $data['RMHtmlLoc'] == 'above' ) :
|
49 |
-
self::additionalContent( $data['RMHtml'] );
|
50 |
-
endif;
|
51 |
-
|
52 |
-
if( !$data['RMSearch'] && $data['RMSearchPos'] == 'above' ) :
|
53 |
-
self::searchBar();
|
54 |
-
endif;
|
55 |
-
|
56 |
-
/*
|
57 |
-
* Cache Menu to save Memory/Time
|
58 |
-
* Added 19/01/15 v2.3
|
59 |
-
*/
|
60 |
-
|
61 |
-
echo RM_Transient::getTransientMenu( $data );
|
62 |
-
|
63 |
-
/* End Caching */
|
64 |
-
|
65 |
-
if( !$data['RMSearch'] && $data['RMSearchPos'] == 'below' ) :
|
66 |
-
self::searchBar();
|
67 |
-
endif;
|
68 |
-
|
69 |
-
if( isset( $data['RMHtml'] ) && !empty( $data['RMHtml'] ) && $data['RMHtmlLoc'] == 'below' ) :
|
70 |
-
self::additionalContent( $data['RMHtml'] );
|
71 |
-
endif;
|
72 |
-
|
73 |
-
?>
|
74 |
-
|
75 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
autoload.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once dirname(__FILE__) . '/src/app/Mappers/scss.inc.php';
|
4 |
+
|
5 |
+
spl_autoload_register( function( $class_name ) {
|
6 |
+
|
7 |
+
$strip_namespace = str_replace( 'ResponsiveMenu\\', '', $class_name );
|
8 |
+
$file_name = str_replace( '\\', '/', $strip_namespace );
|
9 |
+
|
10 |
+
$file = __DIR__ . '/src/app/' . $file_name . '.php';
|
11 |
+
|
12 |
+
if(file_exists($file))
|
13 |
+
include $file;
|
14 |
+
|
15 |
+
} );
|
public/export/export.xml
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?><RMOptions><RM></RM><RMBreak>ODAw</RMBreak><RMDepth>Mg==</RMDepth><RMTop>MTA=</RMTop><RMRight>NQ==</RMRight><RMCss></RMCss><RMTitle>TWVudSBUaXRsZQ==</RMTitle><RMLineCol>I0ZGRkZGRg==</RMLineCol><RMClickBkg>IzAwMDAwMA==</RMClickBkg><RMClickTitle></RMClickTitle><RMBkgTran></RMBkgTran><RMFont></RMFont><RMPos></RMPos><RMImage></RMImage><RMWidth>NzU=</RMWidth><RMBkg>IzQzNDk0Qw==</RMBkg><RMBkgHov>IzNDM0MzQw==</RMBkgHov><RMTitleCol>I0ZGRkZGRg==</RMTitleCol><RMTextCol>I0ZGRkZGRg==</RMTextCol><RMBorCol>IzNDM0MzQw==</RMBorCol><RMTextColHov>I0ZGRkZGRg==</RMTextColHov><RMTitleColHov>I0ZGRkZGRg==</RMTitleColHov><RMAnim>b3ZlcmxheQ==</RMAnim><RMPushCSS></RMPushCSS><RMTitleBkg>IzQzNDk0Qw==</RMTitleBkg><RMFontSize>MTM=</RMFontSize><RMTitleSize>MTQ=</RMTitleSize><RMBtnSize>MTM=</RMBtnSize><RMCurBkg>IzQzNDk0Qw==</RMCurBkg><RMCurCol>I0ZGRkZGRg==</RMCurCol><RMAnimSpd>MC41</RMAnimSpd><RMTranSpd>MQ==</RMTranSpd><RMTxtAlign>bGVmdA==</RMTxtAlign><RMSearch></RMSearch><RMExpand></RMExpand><RMLinkHeight>MjA=</RMLinkHeight><RMExternal></RMExternal><RMSide>bGVmdA==</RMSide><RMFooter></RMFooter><RMClickImg></RMClickImg><RMMinify></RMMinify><RMClickClose></RMClickClose><RMRemImp></RMRemImp><RMX></RMX><RMMinWidth>MA==</RMMinWidth><RMMaxWidth>MA==</RMMaxWidth><RMExpandPar></RMExpandPar><RMIgnParCli></RMIgnParCli><RMCliToClo></RMCliToClo><RMSearchPos>YmVsb3c=</RMSearchPos><RMTitleLink></RMTitleLink><RMTitleLoc>X3NlbGY=</RMTitleLoc><RMHtml></RMHtml><RMHtmlLoc>Ym90dG9t</RMHtmlLoc><RMShortcode></RMShortcode><RMLineHeight>NQ==</RMLineHeight><RMLineWidth>MzM=</RMLineWidth><RMLineMargin>Ng==</RMLineMargin><RMClickImgClicked></RMClickImgClicked><RMAccordion></RMAccordion><RMArShpA>IiYjeDI1QjI7Ig==</RMArShpA><RMArShpI>IiYjeDI1QkM7Ig==</RMArShpI><RMArImgA></RMArImgA><RMArImgI></RMArImgI><RMTrigger>I2NsaWNrLW1lbnU=</RMTrigger><RMPushBtn></RMPushBtn><RMCurBkgHov>IzQzNDk0Qw==</RMCurBkgHov><RMCurColHov>I0ZGRkZGRg==</RMCurColHov><RMWalker></RMWalker><RMUseTran></RMUseTran><RMLoc>cmlnaHQ=</RMLoc><RMThemeLocation></RMThemeLocation><RMClickTitlePos>Ym90dG9t</RMClickTitlePos><RMClickTitleHeight>MTQ=</RMClickTitleHeight></RMOptions>
|
|
public/imgs/icon.png
DELETED
Binary file
|
public/js/touch.js
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
/*! jQuery Mobile v1.4.3 | Copyright 2010, 2014 jQuery Foundation, Inc. | jquery.org/license */
|
2 |
-
|
3 |
-
(function(e,t,n){typeof define=="function"&&define.amd?define(["jquery"],function(r){return n(r,e,t),r.mobile}):n(e.jQuery,e,t)})(this,document,function(e,t,n,r){(function(e,t,n,r){function T(e){while(e&&typeof e.originalEvent!="undefined")e=e.originalEvent;return e}function N(t,n){var i=t.type,s,o,a,l,c,h,p,d,v;t=e.Event(t),t.type=n,s=t.originalEvent,o=e.event.props,i.search(/^(mouse|click)/)>-1&&(o=f);if(s)for(p=o.length,l;p;)l=o[--p],t[l]=s[l];i.search(/mouse(down|up)|click/)>-1&&!t.which&&(t.which=1);if(i.search(/^touch/)!==-1){a=T(s),i=a.touches,c=a.changedTouches,h=i&&i.length?i[0]:c&&c.length?c[0]:r;if(h)for(d=0,v=u.length;d<v;d++)l=u[d],t[l]=h[l]}return t}function C(t){var n={},r,s;while(t){r=e.data(t,i);for(s in r)r[s]&&(n[s]=n.hasVirtualBinding=!0);t=t.parentNode}return n}function k(t,n){var r;while(t){r=e.data(t,i);if(r&&(!n||r[n]))return t;t=t.parentNode}return null}function L(){g=!1}function A(){g=!0}function O(){E=0,v.length=0,m=!1,A()}function M(){L()}function _(){D(),c=setTimeout(function(){c=0,O()},e.vmouse.resetTimerDuration)}function D(){c&&(clearTimeout(c),c=0)}function P(t,n,r){var i;if(r&&r[t]||!r&&k(n.target,t))i=N(n,t),e(n.target).trigger(i);return i}function H(t){var n=e.data(t.target,s),r;!m&&(!E||E!==n)&&(r=P("v"+t.type,t),r&&(r.isDefaultPrevented()&&t.preventDefault(),r.isPropagationStopped()&&t.stopPropagation(),r.isImmediatePropagationStopped()&&t.stopImmediatePropagation()))}function B(t){var n=T(t).touches,r,i,o;n&&n.length===1&&(r=t.target,i=C(r),i.hasVirtualBinding&&(E=w++,e.data(r,s,E),D(),M(),d=!1,o=T(t).touches[0],h=o.pageX,p=o.pageY,P("vmouseover",t,i),P("vmousedown",t,i)))}function j(e){if(g)return;d||P("vmousecancel",e,C(e.target)),d=!0,_()}function F(t){if(g)return;var n=T(t).touches[0],r=d,i=e.vmouse.moveDistanceThreshold,s=C(t.target);d=d||Math.abs(n.pageX-h)>i||Math.abs(n.pageY-p)>i,d&&!r&&P("vmousecancel",t,s),P("vmousemove",t,s),_()}function I(e){if(g)return;A();var t=C(e.target),n,r;P("vmouseup",e,t),d||(n=P("vclick",e,t),n&&n.isDefaultPrevented()&&(r=T(e).changedTouches[0],v.push({touchID:E,x:r.clientX,y:r.clientY}),m=!0)),P("vmouseout",e,t),d=!1,_()}function q(t){var n=e.data(t,i),r;if(n)for(r in n)if(n[r])return!0;return!1}function R(){}function U(t){var n=t.substr(1);return{setup:function(){q(this)||e.data(this,i,{});var r=e.data(this,i);r[t]=!0,l[t]=(l[t]||0)+1,l[t]===1&&b.bind(n,H),e(this).bind(n,R),y&&(l.touchstart=(l.touchstart||0)+1,l.touchstart===1&&b.bind("touchstart",B).bind("touchend",I).bind("touchmove",F).bind("scroll",j))},teardown:function(){--l[t],l[t]||b.unbind(n,H),y&&(--l.touchstart,l.touchstart||b.unbind("touchstart",B).unbind("touchmove",F).unbind("touchend",I).unbind("scroll",j));var r=e(this),s=e.data(this,i);s&&(s[t]=!1),r.unbind(n,R),q(this)||r.removeData(i)}}}var i="virtualMouseBindings",s="virtualTouchID",o="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),u="clientX clientY pageX pageY screenX screenY".split(" "),a=e.event.mouseHooks?e.event.mouseHooks.props:[],f=e.event.props.concat(a),l={},c=0,h=0,p=0,d=!1,v=[],m=!1,g=!1,y="addEventListener"in n,b=e(n),w=1,E=0,S,x;e.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(x=0;x<o.length;x++)e.event.special[o[x]]=U(o[x]);y&&n.addEventListener("click",function(t){var n=v.length,r=t.target,i,o,u,a,f,l;if(n){i=t.clientX,o=t.clientY,S=e.vmouse.clickDistanceThreshold,u=r;while(u){for(a=0;a<n;a++){f=v[a],l=0;if(u===r&&Math.abs(f.x-i)<S&&Math.abs(f.y-o)<S||e.data(u,s)===f.touchID){t.preventDefault(),t.stopPropagation();return}}u=u.parentNode}}},!0)})(e,t,n),function(e){e.mobile={}}(e),function(e,t){var r={touch:"ontouchend"in n};e.mobile.support=e.mobile.support||{},e.extend(e.support,r),e.extend(e.mobile.support,r)}(e),function(e,t,r){function l(t,n,i,s){var o=i.type;i.type=n,s?e.event.trigger(i,r,t):e.event.dispatch.call(t,i),i.type=o}var i=e(n),s=e.mobile.support.touch,o="touchmove scroll",u=s?"touchstart":"mousedown",a=s?"touchend":"mouseup",f=s?"touchmove":"mousemove";e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(t,n){e.fn[n]=function(e){return e?this.bind(n,e):this.trigger(n)},e.attrFn&&(e.attrFn[n]=!0)}),e.event.special.scrollstart={enabled:!0,setup:function(){function s(e,n){r=n,l(t,r?"scrollstart":"scrollstop",e)}var t=this,n=e(t),r,i;n.bind(o,function(t){if(!e.event.special.scrollstart.enabled)return;r||s(t,!0),clearTimeout(i),i=setTimeout(function(){s(t,!1)},50)})},teardown:function(){e(this).unbind(o)}},e.event.special.tap={tapholdThreshold:750,emitTapOnTaphold:!0,setup:function(){var t=this,n=e(t),r=!1;n.bind("vmousedown",function(s){function a(){clearTimeout(u)}function f(){a(),n.unbind("vclick",c).unbind("vmouseup",a),i.unbind("vmousecancel",f)}function c(e){f(),!r&&o===e.target?l(t,"tap",e):r&&e.preventDefault()}r=!1;if(s.which&&s.which!==1)return!1;var o=s.target,u;n.bind("vmouseup",a).bind("vclick",c),i.bind("vmousecancel",f),u=setTimeout(function(){e.event.special.tap.emitTapOnTaphold||(r=!0),l(t,"taphold",e.Event("taphold",{target:o}))},e.event.special.tap.tapholdThreshold)})},teardown:function(){e(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup"),i.unbind("vmousecancel")}},e.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:30,getLocation:function(e){var n=t.pageXOffset,r=t.pageYOffset,i=e.clientX,s=e.clientY;if(e.pageY===0&&Math.floor(s)>Math.floor(e.pageY)||e.pageX===0&&Math.floor(i)>Math.floor(e.pageX))i-=n,s-=r;else if(s<e.pageY-r||i<e.pageX-n)i=e.pageX-n,s=e.pageY-r;return{x:i,y:s}},start:function(t){var n=t.originalEvent.touches?t.originalEvent.touches[0]:t,r=e.event.special.swipe.getLocation(n);return{time:(new Date).getTime(),coords:[r.x,r.y],origin:e(t.target)}},stop:function(t){var n=t.originalEvent.touches?t.originalEvent.touches[0]:t,r=e.event.special.swipe.getLocation(n);return{time:(new Date).getTime(),coords:[r.x,r.y]}},handleSwipe:function(t,n,r,i){if(n.time-t.time<e.event.special.swipe.durationThreshold&&Math.abs(t.coords[0]-n.coords[0])>e.event.special.swipe.horizontalDistanceThreshold&&Math.abs(t.coords[1]-n.coords[1])<e.event.special.swipe.verticalDistanceThreshold){var s=t.coords[0]>n.coords[0]?"swipeleft":"swiperight";return l(r,"swipe",e.Event("swipe",{target:i,swipestart:t,swipestop:n}),!0),l(r,s,e.Event(s,{target:i,swipestart:t,swipestop:n}),!0),!0}return!1},eventInProgress:!1,setup:function(){var t,n=this,r=e(n),s={};t=e.data(this,"mobile-events"),t||(t={length:0},e.data(this,"mobile-events",t)),t.length++,t.swipe=s,s.start=function(t){if(e.event.special.swipe.eventInProgress)return;e.event.special.swipe.eventInProgress=!0;var r,o=e.event.special.swipe.start(t),u=t.target,l=!1;s.move=function(t){if(!o)return;r=e.event.special.swipe.stop(t),l||(l=e.event.special.swipe.handleSwipe(o,r,n,u),l&&(e.event.special.swipe.eventInProgress=!1)),Math.abs(o.coords[0]-r.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&t.preventDefault()},s.stop=function(){l=!0,e.event.special.swipe.eventInProgress=!1,i.off(f,s.move),s.move=null},i.on(f,s.move).one(a,s.stop)},r.on(u,s.start)},teardown:function(){var t,n;t=e.data(this,"mobile-events"),t&&(n=t.swipe,delete t.swipe,t.length--,t.length===0&&e.removeData(this,"mobile-events")),n&&(n.start&&e(this).off(u,n.start),n.move&&i.off(f,n.move),n.stop&&i.off(a,n.stop))}},e.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe.left",swiperight:"swipe.right"},function(t,n){e.event.special[t]={setup:function(){e(this).bind(n,e.noop)},teardown:function(){e(this).unbind(n)}}})}(e,this)});
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== Responsive Menu ===
|
2 |
Contributors: ResponsiveMenu
|
3 |
-
Donate link:
|
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.
|
7 |
-
Stable tag:
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -12,98 +12,102 @@ This is a Highly Customisable Responsive Menu Plugin for WordPress
|
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
This is a Highly Customisable Responsive Menu Plugin for WordPress, with
|
16 |
-
<br />
|
|
|
|
|
|
|
17 |
<ul>
|
18 |
-
<li>
|
19 |
-
<li>
|
20 |
-
<li>
|
21 |
-
<li>
|
22 |
-
<li>
|
23 |
-
<li>
|
24 |
-
<li>
|
25 |
-
<li>
|
26 |
-
<li>
|
27 |
-
<li>
|
28 |
-
<li>
|
29 |
-
<li>
|
30 |
-
<li>
|
31 |
-
<li>
|
32 |
-
<li>
|
33 |
-
<li>
|
34 |
-
<li>
|
35 |
-
<li>
|
36 |
-
<li>
|
37 |
-
<li>
|
38 |
-
<li>
|
39 |
-
<li>
|
40 |
-
<li>
|
41 |
-
<li>
|
42 |
-
<li>
|
43 |
-
<li>
|
44 |
-
<li>
|
45 |
-
<li>
|
46 |
-
<li>
|
47 |
-
<li>
|
48 |
-
<li>
|
49 |
-
<li>
|
50 |
-
<li>
|
51 |
-
<li>
|
52 |
-
<li>
|
53 |
-
<li>
|
54 |
-
<li>
|
55 |
-
<li>
|
56 |
-
<li>
|
57 |
-
<li>
|
58 |
-
<li>
|
59 |
-
<li>
|
60 |
-
<li>
|
61 |
-
<li>
|
62 |
-
<li>
|
63 |
-
<li>
|
64 |
-
<li>
|
65 |
-
<li>
|
66 |
-
<li>
|
67 |
-
<li>
|
68 |
-
<li>
|
69 |
-
<li>
|
70 |
-
<li>
|
71 |
-
<li>
|
72 |
-
<li>
|
73 |
-
<li>
|
74 |
-
<li>
|
75 |
-
<li>
|
76 |
-
<li>
|
77 |
-
<li>
|
78 |
-
<li>
|
79 |
-
<li>
|
80 |
-
<li>
|
81 |
-
<li>
|
82 |
-
<li>
|
83 |
-
<li>
|
84 |
-
<li>
|
85 |
</ul>
|
86 |
-
The plugin creates a nice three-lined mobile menu button (or custom image if you choose) that users can click to bring a slide out menu (from the left, right, top or bottom - again your choice), which is easily navigated.
|
87 |
<br /><br />
|
88 |
-
|
89 |
<br /><br />
|
90 |
-
It requires no shortcodes (although you can use them) or fancy php code to be inserted by yourself making it very easy to install
|
91 |
<br /><br />
|
92 |
You have the choice to include the stylesheets and scripts inline to avoid adding any extra HTTP requests to your site or through external stylesheets created by the plug-in. Either way, the code added is extremely small (only a little jQuery and CSS) and there is even an option to minify the output if you wish saving a further 50% on file space.
|
93 |
<br /><br />
|
94 |
It also includes the following functionality:
|
95 |
<ul>
|
96 |
-
<li>
|
97 |
-
<li> - Transient Caching to serious increase load speed</li>
|
98 |
-
<li> - Croatian translation - Massive thanks to <a href="https://www.facebook.com/pages/Neverone-design/490262371018076">Neverone Design</a> for this!</li>
|
99 |
-
<li> - Spanish Translation - Massive thanks to Andrew @ <a href="http://www.webhostinghub.com">WebHostingHub</a> for this!</li>
|
100 |
-
<li> - Dutch Translation - Massive thanks to Carlo @ <a href="http://www.quinex.nl/">Quinex</a> for this!</li>
|
101 |
</ul>
|
102 |
-
|
103 |
-
|
104 |
-
<
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
107 |
<br />
|
108 |
|
109 |
== Installation ==
|
@@ -122,7 +126,15 @@ Alternatively:
|
|
122 |
|
123 |
== Frequently Asked Questions ==
|
124 |
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
|
127 |
== Screenshots ==
|
128 |
|
@@ -134,6 +146,94 @@ Alternatively:
|
|
134 |
|
135 |
== Changelog ==
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
= 2.8.9 (17th June 2016) =
|
138 |
* Last Version 2 release with beta notice
|
139 |
|
@@ -346,3 +446,9 @@ Alternatively:
|
|
346 |
* Initial Version Released.
|
347 |
|
348 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
|
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.6
|
7 |
+
Stable tag: 3.0.10
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
This is a Highly Customisable Responsive Menu Plugin for WordPress, with over 120 customisable options giving you a combination of 14,000 options!
|
16 |
+
<br /><br />
|
17 |
+
**Requires PHP 5.4+**, please ensure you have this installed before upgrading.
|
18 |
+
<br /><br />
|
19 |
+
With this plugin, you can edit the following and more:
|
20 |
<ul>
|
21 |
+
<li>Menu Title</li>
|
22 |
+
<li>Menu Title Image</li>
|
23 |
+
<li>Button Title</li>
|
24 |
+
<li>Button Title Image</li>
|
25 |
+
<li>Menu To Responsify</li>
|
26 |
+
<li>Media Query Breakpoint Width</li>
|
27 |
+
<li>CSS Options For Hiding Specific Elements</li>
|
28 |
+
<li>Menu Depth To Display</li>
|
29 |
+
<li>Top Location</li>
|
30 |
+
<li>Right Percentage Location</li>
|
31 |
+
<li>Line & Text Colour</li>
|
32 |
+
<li>Menu Button Background Colour</li>
|
33 |
+
<li>Absolute and Fixed Positioning</li>
|
34 |
+
<li>Menu Font</li>
|
35 |
+
<li>Menu Title Colour</li>
|
36 |
+
<li>Menu Title Hover Colour</li>
|
37 |
+
<li>Menu Title Background Colour</li>
|
38 |
+
<li>Menu Text Colour</li>
|
39 |
+
<li>Menu Text Hover Colour</li>
|
40 |
+
<li>Menu Background Colour</li>
|
41 |
+
<li>Menu Link Background Hover Colour</li>
|
42 |
+
<li>Menu Text Size</li>
|
43 |
+
<li>Menu Button Text Size</li>
|
44 |
+
<li>Menu Links Text Size</li>
|
45 |
+
<li>Choose Overlay or Push Animations</li>
|
46 |
+
<li>Slide Animation Speed</li>
|
47 |
+
<li>Ability to auto expand/hide sub-menus</li>
|
48 |
+
<li>Inclusion/Exclusion of Search Box</li>
|
49 |
+
<li>Choice of Positioning of Search Box</li>
|
50 |
+
<li>Transition speed</li>
|
51 |
+
<li>Slide Animation Speed</li>
|
52 |
+
<li>Menu Link Heights</li>
|
53 |
+
<li>Text Alignment</li>
|
54 |
+
<li>Choice of side to slide in from (left, right, top, bottom)</li>
|
55 |
+
<li>Choice to use inline/external stylesheets and scripts</li>
|
56 |
+
<li>Option to include JavaScript in footer</li>
|
57 |
+
<li>Option to remove CSS !important tags</li>
|
58 |
+
<li>Choice to Minify created CSS and JS files (saves up to 50% file space)</li>
|
59 |
+
<li>Choice to auto-close menu items on click (for single page sites)</li>
|
60 |
+
<li>Choice to replace 3 lines with an x on click</li>
|
61 |
+
<li>Minimum width of menu</li>
|
62 |
+
<li>Maximum width of menu</li>
|
63 |
+
<li>Choice to Auto Expand Parent Links</li>
|
64 |
+
<li>Choice to Ignore Clicks on Ancestor Links</li>
|
65 |
+
<li>Choice to Close Menu Automatically on Page Clicks</li>
|
66 |
+
<li>Choice to Specify Title Menu Link</li>
|
67 |
+
<li>Choice to Specify Title Menu Link Location</li>
|
68 |
+
<li>Ability to add custom HTML snippet inside the menu</li>
|
69 |
+
<li>Choice of location for custom HTML snippet inside the menu</li>
|
70 |
+
<li>Choice of using shortode or not</li>
|
71 |
+
<li>Ability to change the 3 lines height</li>
|
72 |
+
<li>Ability to change the 3 lines width</li>
|
73 |
+
<li>Ability to Export Options</li>
|
74 |
+
<li>Ability to Import Options</li>
|
75 |
+
<li>Ability to set sub menu arrow shape/image Options</li>
|
76 |
+
<li>Ability to set custom click trigger</li>
|
77 |
+
<li>Ability to push menu button with animation</li>
|
78 |
+
<li>Ability to change Current Page background hover colour</li>
|
79 |
+
<li>Ability to change Current Page Link hover colour</li>
|
80 |
+
<li>Ability to provide a custom walker option</li>
|
81 |
+
<li>Ability to choose to use transient caching or not</li>
|
82 |
+
<li>Ability to choose if menu is shown on left or right of screen</li>
|
83 |
+
<li>Ability to set theme location menu</li>
|
84 |
+
<li>Ability to reset to default</li>
|
85 |
+
<li>Ability to set menu text location</li>
|
86 |
+
<li>Ability to set menu text line height</li>
|
87 |
+
<li>Plus more...</li>
|
88 |
</ul>
|
89 |
+
The plugin creates a nice three-lined mobile menu button (or custom image if you choose) that users can click on to bring a slide out menu (from the left, right, top or bottom - again your choice), which is easily navigated.
|
90 |
<br /><br />
|
91 |
+
It is fully responsive if you have the viewport meta tag on your site, using media queries with the widths defined by you. It can be used as a responsive menu, mobile menu, tablet menu or full dedicated menu for your main site.
|
92 |
<br /><br />
|
93 |
+
It requires no shortcodes (although you can use them) or fancy php code to be inserted by yourself making it very easy to install and you can design it to look exactly as you want to or leave it with its default values to have it looking amazing in just a matter of seconds.
|
94 |
<br /><br />
|
95 |
You have the choice to include the stylesheets and scripts inline to avoid adding any extra HTTP requests to your site or through external stylesheets created by the plug-in. Either way, the code added is extremely small (only a little jQuery and CSS) and there is even an option to minify the output if you wish saving a further 50% on file space.
|
96 |
<br /><br />
|
97 |
It also includes the following functionality:
|
98 |
<ul>
|
99 |
+
<li>WPML/Polylang Support</li>
|
|
|
|
|
|
|
|
|
100 |
</ul>
|
101 |
+
If you decide to go Pro then you will also get the following functionality:
|
102 |
+
<ul>
|
103 |
+
<li>FontIcon Support for individual menu items</li>
|
104 |
+
<li>Button Animation Effects</li>
|
105 |
+
<li>Colour Opacity option</li>
|
106 |
+
<li>Header Bar</li>
|
107 |
+
<li>Single Menu Option</li>
|
108 |
+
</ul>
|
109 |
+
For more reasons to go Pro, please visit <a target="_blank" href="https://responsive.menu/why-go-pro/">this page</a>.
|
110 |
+
If you would like to see any other options added to the plugin or would like to help with translating the plugin into various languages then please email me or place them in a support ticket.
|
111 |
<br />
|
112 |
|
113 |
== Installation ==
|
126 |
|
127 |
== Frequently Asked Questions ==
|
128 |
|
129 |
+
1. Why do I get the error `Parse error: syntax error, unexpected '[' in /home/..../wp-content/plugins/responsive-menu/src/app/Routing/WpRouting.php on line 19`?
|
130 |
+
|
131 |
+
This is due to your PHP version not being high enough, you need at least PHP 5.4 for the plugin to work.
|
132 |
+
|
133 |
+
2. I am getting a message similar to `Fatal error: Uncaught exception 'Exception' with message 'parse error: failed at $hamburger-layer-color: ;`, why?
|
134 |
+
|
135 |
+
All you need to do is login to your WordPress admin, go to my plugin page and hit 'Update Options' to fix this.
|
136 |
+
|
137 |
+
To view our whole FAQ, please go to https://responsive.menu/faq/
|
138 |
|
139 |
== Screenshots ==
|
140 |
|
146 |
|
147 |
== Changelog ==
|
148 |
|
149 |
+
= 3.0.10 (27th August 2016) =
|
150 |
+
* **Requires PHP 5.4**
|
151 |
+
* Improved RTL support
|
152 |
+
* Additional Content added to WPML/Polylang
|
153 |
+
* Added sub-arrow active colours - Pro only
|
154 |
+
* Added sub-arrow positioning side option
|
155 |
+
* Allow 0 values to be entered
|
156 |
+
* Switched sub-menu padding round if right text-alignment used
|
157 |
+
* Added item link colours to transition list
|
158 |
+
* Minor bug fixes
|
159 |
+
|
160 |
+
= 3.0.9 (4th August 2016) =
|
161 |
+
* **Requires PHP 5.4**
|
162 |
+
* Added current item border colour option
|
163 |
+
* Added current item border hover colour option
|
164 |
+
* Apply title link to title image
|
165 |
+
* Fixed transition bug with iPhone Safari iOS on links
|
166 |
+
* Fixed Import option bug
|
167 |
+
* Import native jquery-ui-core instead of externally
|
168 |
+
* Minor bug fixes
|
169 |
+
|
170 |
+
= 3.0.8 (25th July 2016) =
|
171 |
+
* **Requires PHP 5.4**
|
172 |
+
* Added placeholder search text colour option
|
173 |
+
* Improved update process (no longer need to login to admin to trigger)
|
174 |
+
* Bug fixes
|
175 |
+
|
176 |
+
= 3.0.7 (22nd July 2016) =
|
177 |
+
* **Requires PHP 5.4**
|
178 |
+
* Added preview option - Pro only
|
179 |
+
* Added search box text colour option
|
180 |
+
* Added search box background colour option
|
181 |
+
* Added search box border colour option
|
182 |
+
* Fixed header bar bug with disabled scrolling - PRO
|
183 |
+
* Fixed smooth scrolling issue on iOS with disabled scrolling - PRO
|
184 |
+
* Added string translation to Search text
|
185 |
+
|
186 |
+
= 3.0.6 (13th July 2016) =
|
187 |
+
* **Requires PHP 5.4**
|
188 |
+
* Improved Database Migration Scripts
|
189 |
+
* Changed sub-arrows to only show border on left edge
|
190 |
+
* Improved button title text spacing
|
191 |
+
* Improved PHP version checking process
|
192 |
+
|
193 |
+
= 3.0.5 (13th July 2016) =
|
194 |
+
* **Requires PHP 5.4**
|
195 |
+
* Fixed bug with push animation
|
196 |
+
* Improved PHP version check functionality
|
197 |
+
* Fixed issue where custom menu classes weren't being added
|
198 |
+
|
199 |
+
= 3.0.4 (9th July 2016) =
|
200 |
+
* **Requires PHP 5.4**
|
201 |
+
* Fixed bug with overwriting values with shortcode
|
202 |
+
|
203 |
+
= 3.0.3 (9th July 2016) =
|
204 |
+
* **Requires PHP 5.4**
|
205 |
+
* Fixed bug with custom trigger
|
206 |
+
* Updated Polylang Support
|
207 |
+
* Removed extend() function from Pimple Container as it was throwing security notices in VaultPress - thanks to Brin @ WinningWp.com
|
208 |
+
|
209 |
+
= 3.0.2 (8th July 2016) =
|
210 |
+
* **Requires PHP 5.4**
|
211 |
+
* Fixed issue with close on link click option
|
212 |
+
* Improved database migration scripts
|
213 |
+
* Updated default button size
|
214 |
+
* Improved License Checks (Pro)
|
215 |
+
* Removed tab memory (too resource intensive)
|
216 |
+
* Fixed Query Monitor "IF" error - thanks to KTS915
|
217 |
+
* Bug fixes
|
218 |
+
|
219 |
+
= 3.0.1 (7th July 2016) =
|
220 |
+
* **Requires PHP 5.4**
|
221 |
+
* Initial Bug Fixes
|
222 |
+
* Catch non-updated option errors
|
223 |
+
* Those using under PHP 5.4 will not crash their site but deactivate
|
224 |
+
* License Key Checking Fixed (Pro)
|
225 |
+
|
226 |
+
= 3.0.0 (5th July 2016) =
|
227 |
+
* **Requires PHP 5.4** - Please ensure you have it installed to work
|
228 |
+
* Version 3 released!
|
229 |
+
* Please login to your admin and hit 'Update Options' upon installing on all sites
|
230 |
+
* Awesome FontIcon integration
|
231 |
+
* Much Smoother Animations
|
232 |
+
* Button Animations
|
233 |
+
* And much, much more
|
234 |
+
* Many bug fixes
|
235 |
+
* Completely re-written from the ground up
|
236 |
+
|
237 |
= 2.8.9 (17th June 2016) =
|
238 |
* Last Version 2 release with beta notice
|
239 |
|
446 |
* Initial Version Released.
|
447 |
|
448 |
== Upgrade Notice ==
|
449 |
+
|
450 |
+
= 2.8.9 =
|
451 |
+
Requires PHP 5.4 - DO NOT upgrade if you do not have this installed.
|
452 |
+
|
453 |
+
= 2.8.8 =
|
454 |
+
Requires PHP 5.4 - DO NOT upgrade if you do not have this installed.
|
responsive-menu.php
CHANGED
@@ -1,36 +1,44 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
Plugin Name: Responsive Menu
|
5 |
-
Plugin URI:
|
6 |
-
Description: Highly Customisable Responsive Menu Plugin for WordPress
|
7 |
-
Version:
|
8 |
-
Author: Responsive Menu
|
9 |
-
Text Domain: responsive-menu
|
10 |
-
Author URI:
|
11 |
-
License: GPL2
|
12 |
-
Tags: responsive, menu, responsive menu
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
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.10
|
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 |
+
*/
|
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';
|
33 |
+
include dirname(__FILE__) . '/src/config/services.php';
|
34 |
+
|
35 |
+
/*
|
36 |
+
* Initial Migration and Version Check synchronisation */
|
37 |
+
add_action('init', function() use($container) {
|
38 |
+
$migration = $container['migration'];
|
39 |
+
$migration->setup();
|
40 |
+
$migration->synchronise();
|
41 |
+
});
|
42 |
+
|
43 |
+
include dirname(__FILE__) . '/src/config/routing.php';
|
44 |
+
include dirname(__FILE__) . '/src/config/internationalise.php';
|
src/app/Collections/OptionsCollection.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Collections;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
|
6 |
+
class OptionsCollection implements \ArrayAccess {
|
7 |
+
|
8 |
+
private $options;
|
9 |
+
|
10 |
+
public function add(Option $option) {
|
11 |
+
$this->options[$option->getName()] = $option;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function get($name) {
|
15 |
+
return $this->options[$name];
|
16 |
+
}
|
17 |
+
|
18 |
+
public function all() {
|
19 |
+
return $this->options;
|
20 |
+
}
|
21 |
+
|
22 |
+
public function usesFontIcons() {
|
23 |
+
return false;
|
24 |
+
}
|
25 |
+
|
26 |
+
public function getActiveArrow() {
|
27 |
+
if($this->options['active_arrow_image'] && $this->options['active_arrow_image']->getValue())
|
28 |
+
return '<img src="' . $this->options['active_arrow_image'] .'" />';
|
29 |
+
else
|
30 |
+
return $this->options['active_arrow_shape'];
|
31 |
+
|
32 |
+
}
|
33 |
+
|
34 |
+
public function getInActiveArrow() {
|
35 |
+
if($this->options['inactive_arrow_image'] && $this->options['inactive_arrow_image']->getValue())
|
36 |
+
return '<img src="' . $this->options['inactive_arrow_image'] .'" />';
|
37 |
+
else
|
38 |
+
return $this->options['inactive_arrow_shape'];
|
39 |
+
|
40 |
+
}
|
41 |
+
|
42 |
+
public function getTitleImage() {
|
43 |
+
if($this->options['menu_title_image'] && $this->options['menu_title_image']->getValue())
|
44 |
+
return '<img src="' . $this->options['menu_title_image'] .'" />';
|
45 |
+
else
|
46 |
+
return null;
|
47 |
+
|
48 |
+
}
|
49 |
+
|
50 |
+
public function getButtonIcon() {
|
51 |
+
if($this->options['button_image'] && $this->options['button_image']->getValue())
|
52 |
+
return '<img src="' . $this->options['button_image'] .'" class="responsive-menu-button-icon responsive-menu-button-icon-active" />';
|
53 |
+
else
|
54 |
+
return '<span class="responsive-menu-inner"></span>';
|
55 |
+
}
|
56 |
+
|
57 |
+
public function getButtonIconActive() {
|
58 |
+
if($this->options['button_image'] && $this->options['button_image']->getValue())
|
59 |
+
return '<img src="' . $this->options['button_image_when_clicked'] .'" class="responsive-menu-button-icon responsive-menu-button-icon-inactive" />';
|
60 |
+
}
|
61 |
+
|
62 |
+
public function offsetExists($offset) {
|
63 |
+
return array_key_exists($offset, $this->options);
|
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) {
|
71 |
+
$this->options[$offset] = $value;
|
72 |
+
}
|
73 |
+
|
74 |
+
public function offsetUnset($offset) {
|
75 |
+
if(isset($this->options[$offset]))
|
76 |
+
unset($this->options[$offset]);
|
77 |
+
}
|
78 |
+
|
79 |
+
public function isEmpty() {
|
80 |
+
return isset($this->options) && count($this->options) > 0 ? false : true;
|
81 |
+
}
|
82 |
+
|
83 |
+
}
|
src/app/Controllers/Admin.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Controllers;
|
4 |
+
use ResponsiveMenu\View\View;
|
5 |
+
use ResponsiveMenu\Services\OptionService;
|
6 |
+
|
7 |
+
class Admin {
|
8 |
+
|
9 |
+
public function __construct(OptionService $service, View $view) {
|
10 |
+
$this->service = $service;
|
11 |
+
$this->view = $view;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function update($default_options, $new_options) {
|
15 |
+
$updated_options = $this->service->combineOptions($default_options, $new_options);
|
16 |
+
return $this->view->render('main', [
|
17 |
+
'options' => $this->service->updateOptions($updated_options),
|
18 |
+
'flash' => ['success' => __('Responsive Menu Options Updated Successfully', 'responsive-menu')]
|
19 |
+
]);
|
20 |
+
}
|
21 |
+
|
22 |
+
public function reset($default_options) {
|
23 |
+
return $this->view->render('main', [
|
24 |
+
'options' => $this->service->updateOptions($default_options),
|
25 |
+
'flash' => ['success' => __('Responsive Menu Options Reset Successfully', 'responsive-menu')]
|
26 |
+
]);
|
27 |
+
}
|
28 |
+
|
29 |
+
public function index() {
|
30 |
+
return $this->view->render('main', ['options' => $this->service->all()]);
|
31 |
+
}
|
32 |
+
|
33 |
+
public function import($default_options, $imported_options) {
|
34 |
+
|
35 |
+
if(!empty($imported_options)):
|
36 |
+
$updated_options = $this->service->combineOptions($default_options, $imported_options);
|
37 |
+
$options = $this->service->updateOptions($updated_options);
|
38 |
+
$flash['success'] = __('Responsive Menu Options Imported Successfully', 'responsive-menu');
|
39 |
+
else:
|
40 |
+
$flash['errors'][] = __('No file selected', 'responsive-menu');
|
41 |
+
$options = $this->service->all();
|
42 |
+
endif;
|
43 |
+
|
44 |
+
return $this->view->render('main', ['options' => $options, 'flash' => $flash]);
|
45 |
+
}
|
46 |
+
|
47 |
+
public function export() {
|
48 |
+
$this->view->noCacheHeaders();
|
49 |
+
$final = [];
|
50 |
+
foreach($this->service->all()->all() as $option)
|
51 |
+
$final[$option->getName()] = $option->getValue();
|
52 |
+
$this->view->display(json_encode($final));
|
53 |
+
$this->view->stopProcessing();
|
54 |
+
}
|
55 |
+
|
56 |
+
}
|
src/app/Controllers/Front.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Controllers;
|
4 |
+
|
5 |
+
use ResponsiveMenu\Services\OptionService;
|
6 |
+
use ResponsiveMenu\View\View;
|
7 |
+
use ResponsiveMenu\ViewModels\Menu;
|
8 |
+
use ResponsiveMenu\ViewModels\Button;
|
9 |
+
|
10 |
+
class Front {
|
11 |
+
|
12 |
+
public function __construct(OptionService $service, View $view, Menu $menu, Button $button) {
|
13 |
+
$this->service = $service;
|
14 |
+
$this->view = $view;
|
15 |
+
$this->menu = $menu;
|
16 |
+
$this->button = $button;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function index() {
|
20 |
+
|
21 |
+
$options = $this->service->all();
|
22 |
+
|
23 |
+
$this->view->echoOrIncludeScripts($options);
|
24 |
+
|
25 |
+
$menu = $this->menu->getHtml($options);
|
26 |
+
$button = $this->button->getHtml($options);
|
27 |
+
|
28 |
+
if($options['shortcode'] == 'off'):
|
29 |
+
$this->view->render('button', ['options' => $options, 'button' => $button]);
|
30 |
+
return $this->view->render('menu', ['options' => $options, 'menu' => $menu]);
|
31 |
+
else:
|
32 |
+
return $this->view->addShortcode($options, $button, $menu);
|
33 |
+
endif;
|
34 |
+
|
35 |
+
}
|
36 |
+
|
37 |
+
public function preview() {
|
38 |
+
return $this->view->render('preview');
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
src/app/Database/Database.php
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
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
ADDED
@@ -0,0 +1,193 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Database;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
use ResponsiveMenu\Database\Database;
|
6 |
+
use ResponsiveMenu\Services\OptionService;
|
7 |
+
|
8 |
+
class Migration {
|
9 |
+
|
10 |
+
protected $db;
|
11 |
+
|
12 |
+
protected $current_version;
|
13 |
+
protected $old_version;
|
14 |
+
protected $old_options;
|
15 |
+
protected $defaults;
|
16 |
+
|
17 |
+
protected static $table = 'responsive_menu';
|
18 |
+
protected static $version_var = 'RMVer';
|
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;
|
26 |
+
$this->old_options = $old_options;
|
27 |
+
}
|
28 |
+
|
29 |
+
public function addNewOptions() {
|
30 |
+
$options = $this->service->all();
|
31 |
+
if($options->isEmpty())
|
32 |
+
$this->service->createOptions($this->defaults);
|
33 |
+
else
|
34 |
+
$this->service->createOptions($this->getNewOptions($options));
|
35 |
+
}
|
36 |
+
|
37 |
+
public function tidyUpOptions() {
|
38 |
+
foreach($this->getOptionsToDelete() as $delete)
|
39 |
+
$this->db->delete(self::$table, array('name' => $delete));
|
40 |
+
}
|
41 |
+
|
42 |
+
public function getNewOptions(OptionsCollection $options) {
|
43 |
+
$current = [];
|
44 |
+
foreach($options->all() as $converted)
|
45 |
+
$current[$converted->getName()] = $converted->getValue();
|
46 |
+
return array_diff_key($this->defaults, $current);
|
47 |
+
}
|
48 |
+
|
49 |
+
public function setup() {
|
50 |
+
if(!$this->isVersion3()):
|
51 |
+
$this->db->createTable(self::$table);
|
52 |
+
$this->synchronise();
|
53 |
+
endif;
|
54 |
+
}
|
55 |
+
|
56 |
+
public function synchronise() {
|
57 |
+
|
58 |
+
# First Thing we need to do is migrate any old options
|
59 |
+
if($this->old_options && !$this->isVersion3())
|
60 |
+
$this->migrateVersion2Options();
|
61 |
+
|
62 |
+
if($this->needsUpdate()):
|
63 |
+
|
64 |
+
# Now we can add any new options
|
65 |
+
$this->addNewOptions();
|
66 |
+
|
67 |
+
# Finally delete any that are no longer used
|
68 |
+
$this->tidyUpOptions();
|
69 |
+
|
70 |
+
# And Update Version
|
71 |
+
$this->updateVersion();
|
72 |
+
|
73 |
+
endif;
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
public function needsUpdate() {
|
78 |
+
return version_compare($this->old_version, $this->current_version, '<');
|
79 |
+
}
|
80 |
+
|
81 |
+
protected function updateVersion() {
|
82 |
+
$this->db->updateOption(self::$version_var, $this->current_version);
|
83 |
+
$this->old_version = $this->current_version;
|
84 |
+
}
|
85 |
+
|
86 |
+
public function isVersion3() {
|
87 |
+
return substr($this->old_version, 0, 1) == 3;
|
88 |
+
}
|
89 |
+
|
90 |
+
public function migrateVersion2Options() {
|
91 |
+
$this->service->createOptions($this->getMigratedOptions());
|
92 |
+
$this->addNewOptions();
|
93 |
+
$this->updateVersion();
|
94 |
+
}
|
95 |
+
|
96 |
+
public function getOptionsToDelete() {
|
97 |
+
return array_diff(
|
98 |
+
array_map(function($a) { return $a->getName(); }, $this->service->all()->all()),
|
99 |
+
array_keys($this->defaults)
|
100 |
+
);
|
101 |
+
}
|
102 |
+
|
103 |
+
public function getMigratedOptions() {
|
104 |
+
$old_options = $this->old_options;
|
105 |
+
|
106 |
+
$new_options = [
|
107 |
+
'menu_to_use' => isset($old_options['RM']) ? $old_options['RM'] : '',
|
108 |
+
'breakpoint' => isset($old_options['RMBreak']) ? $old_options['RMBreak'] : '',
|
109 |
+
'menu_depth' => isset($old_options['RMDepth']) ? $old_options['RMDepth'] : '',
|
110 |
+
'button_top' => isset($old_options['RMTop']) ? $old_options['RMTop'] : '',
|
111 |
+
'button_distance_from_side' => isset($old_options['RMRight']) ? $old_options['RMRight'] : '',
|
112 |
+
'menu_to_hide' => isset($old_options['RMCss']) ? $old_options['RMCss'] : '',
|
113 |
+
'menu_title' => isset($old_options['RMTitle']) ? $old_options['RMTitle'] : '',
|
114 |
+
'button_line_colour' => isset($old_options['RMLineCol']) ? $old_options['RMLineCol'] : '',
|
115 |
+
'button_background_colour' => isset($old_options['RMClickBkg']) ? $old_options['RMClickBkg'] : '',
|
116 |
+
'button_title' => isset($old_options['RMClickTitle']) ? $old_options['RMClickTitle'] : '',
|
117 |
+
'button_transparent_background' => isset($old_options['RMBkgTran']) ? 'on' : '',
|
118 |
+
'menu_font' => isset($old_options['RMFont']) ? $old_options['RMFont'] : '',
|
119 |
+
'button_position_type' => isset($old_options['RMPos']) ? 'fixed' : '',
|
120 |
+
'menu_title_image' => isset($old_options['RMImage']) ? $old_options['RMImage'] : '',
|
121 |
+
'menu_width' => isset($old_options['RMWidth']) ? $old_options['RMWidth'] : '',
|
122 |
+
'menu_item_background_colour' => isset($old_options['RMBkg']) ? $old_options['RMBkg'] : '',
|
123 |
+
'menu_background_colour' => isset($old_options['RMBkg']) ? $old_options['RMBkg'] : '',
|
124 |
+
'menu_sub_arrow_background_colour' => isset($old_options['RMBkg']) ? $old_options['RMBkg'] : '',
|
125 |
+
'menu_item_background_hover_colour' => isset($old_options['RMBkgHov']) ? $old_options['RMBkgHov'] : '',
|
126 |
+
'menu_sub_arrow_background_hover_colour' => isset($old_options['RMBkgHov']) ? $old_options['RMBkgHov'] : '',
|
127 |
+
'menu_title_colour' => isset($old_options['RMTitleCol']) ? $old_options['RMTitleCol'] : '',
|
128 |
+
'menu_link_colour' => isset($old_options['RMTextCol']) ? $old_options['RMTextCol'] : '',
|
129 |
+
'menu_sub_arrow_shape_colour' => isset($old_options['RMTextCol']) ? $old_options['RMTextCol'] : '',
|
130 |
+
'menu_item_border_colour' => isset($old_options['RMBorCol']) ? $old_options['RMBorCol'] : '',
|
131 |
+
'menu_item_border_colour_hover' => isset($old_options['RMBorCol']) ? $old_options['RMBorCol'] : '',
|
132 |
+
'menu_sub_arrow_border_colour' => isset($old_options['RMBorCol']) ? $old_options['RMBorCol'] : '',
|
133 |
+
'menu_sub_arrow_border_hover_colour' => isset($old_options['RMBorCol']) ? $old_options['RMBorCol'] : '',
|
134 |
+
'menu_link_hover_colour' => isset($old_options['RMTextColHov']) ? $old_options['RMTextColHov'] : '',
|
135 |
+
'menu_sub_arrow_shape_hover_colour' => isset($old_options['RMTextColHov']) ? $old_options['RMTextColHov'] : '',
|
136 |
+
'menu_title_hover_colour' => isset($old_options['RMTitleColHov']) ? $old_options['RMTitleColHov'] : '',
|
137 |
+
'animation_type' => isset($old_options['RMAnim']) && $old_options['RMAnim'] == 'push' ? 'push' : '',
|
138 |
+
'page_wrapper' => isset($old_options['RMPushCSS']) ? $old_options['RMPushCSS'] : '',
|
139 |
+
'menu_title_background_colour' => isset($old_options['RMTitleBkg']) ? $old_options['RMTitleBkg'] : '',
|
140 |
+
'menu_title_background_hover_colour' => isset($old_options['RMTitleBkg']) ? $old_options['RMTitleBkg'] : '',
|
141 |
+
'menu_font_size' => isset($old_options['RMFontSize']) ? $old_options['RMFontSize'] : '',
|
142 |
+
'menu_title_font_size' => isset($old_options['RMTitleSize']) ? $old_options['RMTitleSize'] : '',
|
143 |
+
'button_font_size' => isset($old_options['RMBtnSize']) ? $old_options['RMBtnSize'] : '',
|
144 |
+
'menu_current_item_background_colour' => isset($old_options['RMCurBkg']) ? $old_options['RMCurBkg'] : '',
|
145 |
+
'menu_current_link_colour' => isset($old_options['RMCurCol']) ? $old_options['RMCurCol'] : '',
|
146 |
+
'animation_speed' => isset($old_options['RMAnimSpd']) ? $old_options['RMAnimSpd'] : '',
|
147 |
+
'transition_speed' => isset($old_options['RMTranSpd']) ? $old_options['RMTranSpd'] : '',
|
148 |
+
'menu_text_alignment' => isset($old_options['RMTxtAlign']) ? $old_options['RMTxtAlign'] : '',
|
149 |
+
'auto_expand_all_submenus' => isset($old_options['RMExpand']) ? 'on' : '',
|
150 |
+
'menu_links_height' => isset($old_options['RMLinkHeight']) ? $old_options['RMLinkHeight'] + 24 : '',
|
151 |
+
'submenu_arrow_height' => isset($old_options['RMLinkHeight']) ? $old_options['RMLinkHeight'] + 24 : '',
|
152 |
+
'submenu_arrow_width' => isset($old_options['RMLinkHeight']) ? $old_options['RMLinkHeight'] + 24 : '',
|
153 |
+
'external_files' => isset($old_options['RMExternal']) ? 'on' : '',
|
154 |
+
'menu_appear_from' => isset($old_options['RMSide']) ? $old_options['RMSide'] : '',
|
155 |
+
'scripts_in_footer' => isset($old_options['RMFooter']) ? 'on' : '',
|
156 |
+
'button_image' => isset($old_options['RMClickImg']) ? $old_options['RMClickImg'] : '',
|
157 |
+
'minify_scripts' => isset($old_options['RMMinify']) ? 'on' : '',
|
158 |
+
'menu_close_on_link_click' => isset($old_options['RMClickClose']) ? 'on' : '',
|
159 |
+
'menu_minimum_width' => isset($old_options['RMMinWidth']) ? $old_options['RMMinWidth'] : '',
|
160 |
+
'menu_maximum_width' => isset($old_options['RMMaxWidth']) ? $old_options['RMMaxWidth'] : '',
|
161 |
+
'auto_expand_current_submenus' => isset($old_options['RMExpandPar']) ? 'on' : '',
|
162 |
+
'menu_item_click_to_trigger_submenu' => isset($old_options['RMIgnParCli']) ? 'on' : '',
|
163 |
+
'menu_close_on_body_click' => isset($old_options['RMCliToClo']) ? 'on' : '',
|
164 |
+
'menu_title_link' => isset($old_options['RMTitleLink']) ? $old_options['RMTitleLink'] : '',
|
165 |
+
'menu_additional_content' => isset($old_options['RMHtml']) ? $old_options['RMHtml'] : '',
|
166 |
+
'shortcode' => isset($old_options['RMShortcode']) ? 'on' : '',
|
167 |
+
'button_line_height' => isset($old_options['RMLineHeight']) ? $old_options['RMLineHeight'] : '',
|
168 |
+
'button_line_width' => isset($old_options['RMLineWidth']) ? $old_options['RMLineWidth'] : '',
|
169 |
+
'button_line_margin' => isset($old_options['RMLineMargin']) ? $old_options['RMLineMargin'] : '',
|
170 |
+
'button_image_when_clicked' => isset($old_options['RMClickImgClicked']) ? $old_options['RMClickImgClicked'] : '',
|
171 |
+
'accordion_animation' => isset($old_options['RMAccordion']) ? 'on' : '',
|
172 |
+
'active_arrow_shape' => isset($old_options['RMArShpA']) ? json_decode($old_options['RMArShpA']) : '',
|
173 |
+
'inactive_arrow_shape' => isset($old_options['RMArShpI']) ? json_decode($old_options['RMArShpI']) : '',
|
174 |
+
'active_arrow_image' => isset($old_options['RMArImgA']) ? $old_options['RMArImgA'] : '',
|
175 |
+
'inactive_arrow_image' => isset($old_options['RMArImgI']) ? $old_options['RMArImgI'] : '',
|
176 |
+
'button_push_with_animation' => isset($old_options['RMPushBtn']) ? 'on' : '',
|
177 |
+
'menu_current_item_background_hover_colour' => isset($old_options['RMCurBkgHov']) ? $old_options['RMCurBkgHov'] : '',
|
178 |
+
'menu_current_link_hover_colour' => isset($old_options['RMCurColHov']) ? $old_options['RMCurColHov'] : '',
|
179 |
+
'custom_walker' => isset($old_options['RMWalker']) ? $old_options['RMWalker'] : '',
|
180 |
+
'button_left_or_right' => isset($old_options['RMLoc']) ? $old_options['RMLoc'] : '',
|
181 |
+
'theme_location_menu' => isset($old_options['RMThemeLocation']) ? $old_options['RMThemeLocation'] : '',
|
182 |
+
'button_title_position' => isset($old_options['RMClickTitlePos']) ? $old_options['RMClickTitlePos'] : '',
|
183 |
+
];
|
184 |
+
|
185 |
+
$to_save = [];
|
186 |
+
|
187 |
+
foreach(array_filter($new_options) as $key => $val)
|
188 |
+
$to_save[$key] = $val;
|
189 |
+
|
190 |
+
return $to_save;
|
191 |
+
}
|
192 |
+
|
193 |
+
}
|
src/app/Database/WpDatabase.php
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Database;
|
4 |
+
|
5 |
+
class WpDatabase implements Database {
|
6 |
+
|
7 |
+
public function __construct($wpdb) {
|
8 |
+
$this->db = $wpdb;
|
9 |
+
}
|
10 |
+
|
11 |
+
public function update($table, array $to_update, array $where) {
|
12 |
+
return $this->db->update($this->db->prefix . $table, $to_update, $where);
|
13 |
+
}
|
14 |
+
|
15 |
+
public function delete($table, $name) {
|
16 |
+
return $this->db->delete($this->db->prefix . $table, $name);
|
17 |
+
}
|
18 |
+
|
19 |
+
public function all($table) {
|
20 |
+
return $this->db->get_results("SELECT * FROM {$this->db->prefix}{$table}");
|
21 |
+
}
|
22 |
+
|
23 |
+
public function insert($table, array $arguments) {
|
24 |
+
$arguments['created_at'] = current_time('mysql');
|
25 |
+
return $this->db->insert($this->db->prefix . $table, $arguments);
|
26 |
+
}
|
27 |
+
|
28 |
+
public function select($table, $column, $value) {
|
29 |
+
return $this->db->get_results("SELECT * FROM {$this->db->prefix}{$table} WHERE $column = '$value';");
|
30 |
+
}
|
31 |
+
|
32 |
+
public function mySqlTime() {
|
33 |
+
return current_time('mysql');
|
34 |
+
}
|
35 |
+
|
36 |
+
public function updateOption($key, $value) {
|
37 |
+
return update_option($key, $value);
|
38 |
+
}
|
39 |
+
|
40 |
+
public function createTable($table) {
|
41 |
+
$sql = "CREATE TABLE " . $this->db->prefix . $table . " (
|
42 |
+
name varchar(50) NOT NULL,
|
43 |
+
value varchar(5000) DEFAULT NULL,
|
44 |
+
created_at datetime NOT NULL,
|
45 |
+
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
46 |
+
PRIMARY KEY (name)
|
47 |
+
) " . $this->db->get_charset_collate() . ";";
|
48 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php' );
|
49 |
+
dbDelta($sql);
|
50 |
+
}
|
51 |
+
|
52 |
+
}
|
src/app/Factories/CssFactory.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Factories;
|
4 |
+
use ResponsiveMenu\Mappers\ScssBaseMapper;
|
5 |
+
use ResponsiveMenu\Mappers\ScssButtonMapper;
|
6 |
+
use ResponsiveMenu\Mappers\ScssMenuMapper;
|
7 |
+
use ResponsiveMenu\Formatters\Minify;
|
8 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
9 |
+
|
10 |
+
class CssFactory {
|
11 |
+
|
12 |
+
public function __construct(Minify $minifier, ScssBaseMapper $base, ScssButtonMapper $button, ScssMenuMapper $menu) {
|
13 |
+
$this->minifier = $minifier;
|
14 |
+
$this->base = $base;
|
15 |
+
$this->button = $button;
|
16 |
+
$this->menu = $menu;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function build(OptionsCollection $options) {
|
20 |
+
|
21 |
+
$css = $this->base->map($options) . $this->button->map($options) . $this->menu->map($options);
|
22 |
+
|
23 |
+
if($options['minify_scripts'] == 'on')
|
24 |
+
$css = $this->minifier->minify($css);
|
25 |
+
|
26 |
+
return $css;
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
}
|
src/app/Factories/JsFactory.php
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Factories;
|
4 |
+
use ResponsiveMenu\Mappers\JsMapper;
|
5 |
+
use ResponsiveMenu\Formatters\Minify;
|
6 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
7 |
+
|
8 |
+
class JsFactory {
|
9 |
+
|
10 |
+
public function __construct(JsMapper $mapper, Minify $minifier) {
|
11 |
+
$this->mapper = $mapper;
|
12 |
+
$this->minifier = $minifier;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function build(OptionsCollection $options) {
|
16 |
+
|
17 |
+
$js = $this->mapper->map($options);
|
18 |
+
|
19 |
+
if($options['minify_scripts'] == 'on')
|
20 |
+
$js = $this->minifier->minify($js);
|
21 |
+
|
22 |
+
return $js;
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
}
|
src/app/Factories/OptionFactory.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Factories;
|
4 |
+
use ResponsiveMenu\Models\Option as Option;
|
5 |
+
|
6 |
+
class OptionFactory {
|
7 |
+
|
8 |
+
public function __construct($default_options, $option_helpers) {
|
9 |
+
$this->defaults = $default_options;
|
10 |
+
$this->helper = $option_helpers;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function build($name, $value) {
|
14 |
+
|
15 |
+
$filter = isset($this->helper[$name]['filter'])
|
16 |
+
? new $this->helper[$name]['filter']
|
17 |
+
: new \ResponsiveMenu\Filters\TextFilter;
|
18 |
+
|
19 |
+
$value = isset($value) || $value == '0' ? $value : $this->defaults[$name];
|
20 |
+
$value = stripslashes_deep($value);
|
21 |
+
$option = new Option($name, $value);
|
22 |
+
$option->setFilter($filter);
|
23 |
+
|
24 |
+
return $option;
|
25 |
+
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
src/app/Filesystem/FileCreator.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filesystem;
|
4 |
+
|
5 |
+
class FileCreator {
|
6 |
+
|
7 |
+
public function create($folder, $file_name, $content) {
|
8 |
+
return $this->open_write_and_close($folder . '/' . $file_name, $content);
|
9 |
+
}
|
10 |
+
|
11 |
+
protected function open_write_and_close($file_name, $data) {
|
12 |
+
try{
|
13 |
+
$file = fopen($file_name, 'w');
|
14 |
+
fwrite($file, $data);
|
15 |
+
fclose($file);
|
16 |
+
return true;
|
17 |
+
} catch(\Exception $e) {
|
18 |
+
return false;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
}
|
src/app/Filesystem/FolderCreator.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filesystem;
|
4 |
+
|
5 |
+
class FolderCreator {
|
6 |
+
|
7 |
+
public function create($folder) {
|
8 |
+
return mkdir($folder);
|
9 |
+
}
|
10 |
+
|
11 |
+
public function exists($dir) {
|
12 |
+
return is_dir($dir);
|
13 |
+
}
|
14 |
+
|
15 |
+
}
|
src/app/Filesystem/ScriptsBuilder.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filesystem;
|
4 |
+
use ResponsiveMenu\Filesystem\FileCreator;
|
5 |
+
use ResponsiveMenu\Filesystem\FolderCreator;
|
6 |
+
use ResponsiveMenu\Factories\CssFactory;
|
7 |
+
use ResponsiveMenu\Factories\JsFactory;
|
8 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
9 |
+
|
10 |
+
class ScriptsBuilder {
|
11 |
+
|
12 |
+
public function __construct(CssFactory $css, JsFactory $js, FileCreator $files, FolderCreator $folders, $site_id) {
|
13 |
+
$this->css = $css;
|
14 |
+
$this->js = $js;
|
15 |
+
$this->files = $files;
|
16 |
+
$this->folders = $folders;
|
17 |
+
$this->site_id = $site_id;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function build(OptionsCollection $options) {
|
21 |
+
|
22 |
+
$data_folder_dir = dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/responsive-menu-data';
|
23 |
+
|
24 |
+
$js_folder = $data_folder_dir . '/js';
|
25 |
+
$css_folder = $data_folder_dir . '/css';
|
26 |
+
|
27 |
+
if(!$this->folders->exists($data_folder_dir)):
|
28 |
+
$this->folders->create($data_folder_dir);
|
29 |
+
$this->folders->create($css_folder);
|
30 |
+
$this->folders->create($js_folder);
|
31 |
+
endif;
|
32 |
+
|
33 |
+
$this->files->create($css_folder, 'responsive-menu-' . $this->site_id . '.css', $this->css->build($options));
|
34 |
+
$this->files->create($js_folder, 'responsive-menu-' . $this->site_id . '.js', $this->js->build($options));
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
src/app/Filters/Filter.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filters;
|
4 |
+
|
5 |
+
interface Filter
|
6 |
+
{
|
7 |
+
public function filter($data);
|
8 |
+
}
|
src/app/Filters/HtmlFilter.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filters;
|
4 |
+
|
5 |
+
class HtmlFilter implements Filter {
|
6 |
+
|
7 |
+
public function filter($data) {
|
8 |
+
return $data;
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Filters/JsonFilter.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filters;
|
4 |
+
|
5 |
+
class JsonFilter implements Filter {
|
6 |
+
|
7 |
+
public function filter($data) {
|
8 |
+
return is_string($data) ? $data : json_encode($data);
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Filters/TextFilter.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Filters;
|
4 |
+
|
5 |
+
class TextFilter implements Filter {
|
6 |
+
|
7 |
+
public function filter($data) {
|
8 |
+
return strip_tags($data);
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Form/Checkbox.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class Checkbox implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
|
11 |
+
$checked = $option->getValue() == 'on' ? " checked='checked'" : "";
|
12 |
+
|
13 |
+
return "<div class='onoffswitch'>
|
14 |
+
<input type='checkbox' class='checkbox onoffswitch-checkbox' id='{$option->getName()}'{$checked} name='menu[{$option->getName()}]' value='on' />
|
15 |
+
<label class='onoffswitch-label' for='{$option->getName()}'>
|
16 |
+
<span class='onoffswitch-inner'></span>
|
17 |
+
<span class='onoffswitch-switch'></span>
|
18 |
+
</label>
|
19 |
+
</div>";
|
20 |
+
}
|
21 |
+
|
22 |
+
}
|
src/app/Form/Colour.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class Colour implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
return "<input type='text' class='colour wp-color-picker' id='{$option->getName()}' name='menu[{$option->getName()}]' value='{$option->getValue()}' />";
|
11 |
+
}
|
12 |
+
|
13 |
+
}
|
src/app/Form/Export.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
|
5 |
+
class Export {
|
6 |
+
|
7 |
+
public function render() {
|
8 |
+
return '<input type="submit" class="button submit" name="responsive_menu_export" value="' . __('Export Options', 'responsive-menu') . '" />';
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Form/FontIconPageList.php
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class FontIconPageList implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
|
11 |
+
if($decoded = json_decode($option->getValue()))
|
12 |
+
$final = array_filter(array_combine($decoded->id, $decoded->icon));
|
13 |
+
else
|
14 |
+
$final = null;
|
15 |
+
|
16 |
+
$output = "<div class='font-icon-container'><div class='font-icon-row'><div class='font-icon-cell-id'>" . __('Id', 'responsive-menu') . "</div><div class='font-icon-cell-icon'>" . __('Icon', 'responsive-menu') . "</div></div>";
|
17 |
+
|
18 |
+
if(is_array($final) && !empty($final)):
|
19 |
+
foreach($final as $id => $icon):
|
20 |
+
$output .= "
|
21 |
+
<div class='font-icon-row'>
|
22 |
+
<div class='font-icon-cell-id'>
|
23 |
+
<input
|
24 |
+
type='text'
|
25 |
+
class='{$option->getName()}_id'
|
26 |
+
name='menu[{$option->getName()}][id][]'
|
27 |
+
value='{$id}' />
|
28 |
+
</div>
|
29 |
+
<div class='font-icon-cell-icon'>
|
30 |
+
<input
|
31 |
+
type='text'
|
32 |
+
class='{$option->getName()}_icon'
|
33 |
+
name='menu[{$option->getName()}][icon][]'
|
34 |
+
value='{$icon}' />
|
35 |
+
</div>
|
36 |
+
</div>";
|
37 |
+
endforeach;
|
38 |
+
else:
|
39 |
+
$output .= "
|
40 |
+
<div class='font-icon-row'>
|
41 |
+
<div class='font-icon-cell-id'>
|
42 |
+
<input
|
43 |
+
type='text'
|
44 |
+
class='{$option->getName()}_id'
|
45 |
+
name='menu[{$option->getName()}][id][]'
|
46 |
+
value='' />
|
47 |
+
</div>
|
48 |
+
<div class='font-icon-cell-icon'>
|
49 |
+
<input
|
50 |
+
type='text'
|
51 |
+
class='{$option->getName()}_icon'
|
52 |
+
name='menu[{$option->getName()}][icon][]'
|
53 |
+
value='' />
|
54 |
+
</div>
|
55 |
+
</div>";
|
56 |
+
endif;
|
57 |
+
|
58 |
+
$output .= "</div><div class='add-font-icon'>" . __('Add New Font Icon', 'responsive-menu') . "</div>";
|
59 |
+
|
60 |
+
$output .= "<script>
|
61 |
+
jQuery(document).ready(function($) {
|
62 |
+
$(document).on('click', '.add-font-icon', function(e) {
|
63 |
+
var lastRow = $('#{$option->getName()}_container .font-icon-row').last();
|
64 |
+
var nextRow = lastRow.clone();
|
65 |
+
nextRow.find(':text').val('')
|
66 |
+
lastRow.after(nextRow);
|
67 |
+
});
|
68 |
+
});
|
69 |
+
</script>";
|
70 |
+
|
71 |
+
return $output;
|
72 |
+
}
|
73 |
+
|
74 |
+
}
|
src/app/Form/FormComponent.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
|
6 |
+
interface FormComponent {
|
7 |
+
public function render(Option $option);
|
8 |
+
}
|
src/app/Form/HeaderBarOrdering.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class HeaderBarOrdering implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
|
11 |
+
$required = ['logo' => '', 'title' => '', 'search' => '', 'html content' => '', 'button' => ''];
|
12 |
+
$current_options = (array) json_decode($option->getValue());
|
13 |
+
$all_options = array_merge($current_options, $required);
|
14 |
+
|
15 |
+
$output = '<ul id="header-bar-sortable">';
|
16 |
+
foreach($all_options as $name => $val):
|
17 |
+
$current_value = isset($current_options[$name]) ? $current_options[$name] : '';
|
18 |
+
$on_class = $current_value == 'on' ? 'order-option-switch-on' : '';
|
19 |
+
$output .= '<li class="draggable">'
|
20 |
+
. ucwords($name)
|
21 |
+
. '<input type="text" class="orderable-item" value="'.$current_value.'" name="menu['.$option->getName().']['.$name.']" />'
|
22 |
+
. '<div class="order-option-switch ' . $on_class . '"></div>'
|
23 |
+
. '</li>';
|
24 |
+
endforeach;
|
25 |
+
$output .= '</ul>';
|
26 |
+
|
27 |
+
$output .= '<script>
|
28 |
+
jQuery(document).ready(function($) {
|
29 |
+
$(document).on("click", ".order-option-switch", function() {
|
30 |
+
if($(this).siblings("input.orderable-item").val() != "on") {
|
31 |
+
console.log($(this));
|
32 |
+
$(this).siblings("input.orderable-item").val("on");
|
33 |
+
$(this).addClass("order-option-switch-on");
|
34 |
+
} else {
|
35 |
+
$(this).siblings("input.orderable-item").val("");
|
36 |
+
$(this).removeClass("order-option-switch-on");
|
37 |
+
}
|
38 |
+
});
|
39 |
+
$( "#header-bar-sortable" ).sortable({
|
40 |
+
revert: true
|
41 |
+
});
|
42 |
+
$( "#sortable, .draggable" ).disableSelection();
|
43 |
+
});
|
44 |
+
</script>';
|
45 |
+
return $output;
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
src/app/Form/Image.php
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class Image implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
return "<input type='text' class='image' id='{$option->getName()}' name='menu[{$option->getName()}]' value='{$option->getValue()}' />"
|
11 |
+
. "<button type='button' class='button image_button' for='{$option->getName()}' /><i class='fa fa-upload'></i></button>";
|
12 |
+
}
|
13 |
+
|
14 |
+
}
|
src/app/Form/Import.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
|
5 |
+
class Import {
|
6 |
+
|
7 |
+
public function render() {
|
8 |
+
return '<input type="file" name="responsive_menu_import_file" /><input type="submit" class="button submit" name="responsive_menu_import" value="' . __('Import Options', 'responsive-menu') . '" />';
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Form/MenuOrdering.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class MenuOrdering implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
|
11 |
+
$required = ['title' => '', 'menu' => '', 'search' => '', 'additional content' => ''];
|
12 |
+
$current_options = (array) json_decode($option->getValue());
|
13 |
+
$all_options = array_merge($current_options, $required);
|
14 |
+
|
15 |
+
$output = '<ul id="menu-sortable">';
|
16 |
+
foreach($all_options as $name => $val):
|
17 |
+
$current_value = isset($current_options[$name]) ? $current_options[$name] : '';
|
18 |
+
$on_class = $current_value == 'on' ? 'menu-order-option-switch-on' : '';
|
19 |
+
|
20 |
+
$output .= '<li class="draggable">'
|
21 |
+
. ucwords($name)
|
22 |
+
. '<input type="text" class="orderable-item" value="'.$current_value.'" name="menu['.$option->getName().']['.$name.']" />'
|
23 |
+
. '<div class="menu-order-option-switch ' . $on_class . '"></div>'
|
24 |
+
. '</li>';
|
25 |
+
endforeach;
|
26 |
+
$output .= '</ul>';
|
27 |
+
|
28 |
+
$output .= '<script>
|
29 |
+
jQuery(document).ready(function($) {
|
30 |
+
$(document).on("click", ".menu-order-option-switch", function() {
|
31 |
+
if($(this).siblings("input.orderable-item").val() != "on") {
|
32 |
+
$(this).siblings("input.orderable-item").val("on");
|
33 |
+
$(this).addClass("menu-order-option-switch-on");
|
34 |
+
} else {
|
35 |
+
$(this).siblings("input.orderable-item").val("");
|
36 |
+
$(this).removeClass("menu-order-option-switch-on");
|
37 |
+
}
|
38 |
+
});
|
39 |
+
$( "#menu-sortable" ).sortable({
|
40 |
+
revert: true
|
41 |
+
});
|
42 |
+
$( "#sortable, .draggable" ).disableSelection();
|
43 |
+
});
|
44 |
+
</script>';
|
45 |
+
return $output;
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
src/app/Form/Reset.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
|
5 |
+
class Reset {
|
6 |
+
|
7 |
+
public function render() {
|
8 |
+
return '<input type="submit" class="button submit" name="responsive_menu_reset" value="' . __('Reset Options', 'responsive-menu') . '" />';
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Form/Select.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class Select {
|
8 |
+
|
9 |
+
public function render(Option $option, array $select_data) {
|
10 |
+
|
11 |
+
$html = "<div class='select-style'><select class='select' name='menu[{$option->getName()}]' id='{$option->getName()}'>";
|
12 |
+
foreach($select_data as $data) :
|
13 |
+
$selected = $option->getValue() == $data['value'] ? " selected='selected'" : "";
|
14 |
+
$disabled = isset($data['disabled']) ? " disabled='disabled'" : "";
|
15 |
+
$pro = isset($data['disabled']) ? ' [PRO]' : '';
|
16 |
+
$html .= "<option value='{$data['value']}'{$selected}{$disabled}>{$data['display']}{$pro}</option>";
|
17 |
+
endforeach;
|
18 |
+
$html .= "</select></div>";
|
19 |
+
return $html;
|
20 |
+
}
|
21 |
+
|
22 |
+
}
|
src/app/Form/Text.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class Text implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
return "<input type='text' class='text' id='{$option->getName()}' name='menu[{$option->getName()}]' value='{$option->getValue()}' />";
|
11 |
+
}
|
12 |
+
|
13 |
+
}
|
src/app/Form/TextArea.php
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Form;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Form\FormComponent;
|
6 |
+
|
7 |
+
class TextArea implements FormComponent {
|
8 |
+
|
9 |
+
public function render(Option $option) {
|
10 |
+
return "<textarea class='textarea' id='{$option->getName()}' name='menu[{$option->getName()}]'>{$option->getValue()}</textarea>";
|
11 |
+
}
|
12 |
+
|
13 |
+
}
|
src/app/Formatters/Minify.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Formatters;
|
4 |
+
|
5 |
+
class Minify {
|
6 |
+
|
7 |
+
public function minify($data) {
|
8 |
+
|
9 |
+
/* remove comments */
|
10 |
+
$minified = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $data);
|
11 |
+
|
12 |
+
/* remove tabs, spaces, newlines, etc. */
|
13 |
+
$minified = str_replace(array("\r\n","\r","\n","\t",' ',' ',' '), '', $minified);
|
14 |
+
|
15 |
+
/* remove other spaces before/after ; */
|
16 |
+
$minified = preg_replace(array('(( )+{)','({( )+)'), '{', $minified);
|
17 |
+
$minified = preg_replace(array('(( )+})','(}( )+)','(;( )*})'), '}', $minified);
|
18 |
+
$minified = preg_replace(array('(;( )+)','(( )+;)'), ';', $minified);
|
19 |
+
|
20 |
+
return $minified;
|
21 |
+
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
src/app/Mappers/JsMapper.php
ADDED
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Mappers;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
|
6 |
+
class JsMapper {
|
7 |
+
|
8 |
+
public function map(OptionsCollection $options) {
|
9 |
+
|
10 |
+
$animation_speed = $options['animation_speed'] ? $options['animation_speed']->getValue() * 1000 : 500;
|
11 |
+
|
12 |
+
$js = <<<JS
|
13 |
+
|
14 |
+
jQuery(document).ready(function($) {
|
15 |
+
|
16 |
+
var ResponsiveMenu = {
|
17 |
+
trigger: '{$options['button_click_trigger']}',
|
18 |
+
animationSpeed: {$animation_speed},
|
19 |
+
breakpoint: {$options['breakpoint']},
|
20 |
+
pushButton: '{$options['button_push_with_animation']}',
|
21 |
+
animationType: '{$options['animation_type']}',
|
22 |
+
animationSide: '{$options['menu_appear_from']}',
|
23 |
+
pageWrapper: '{$options['page_wrapper']}',
|
24 |
+
isOpen: false,
|
25 |
+
triggerTypes: 'click',
|
26 |
+
activeClass: 'is-active',
|
27 |
+
container: '#responsive-menu-container',
|
28 |
+
openClass: 'responsive-menu-open',
|
29 |
+
accordion: '{$options['accordion_animation']}',
|
30 |
+
activeArrow: '{$options->getActiveArrow()}',
|
31 |
+
inactiveArrow: '{$options->getInActiveArrow()}',
|
32 |
+
wrapper: '#responsive-menu-wrapper',
|
33 |
+
closeOnBodyClick: '{$options['menu_close_on_body_click']}',
|
34 |
+
closeOnLinkClick: '{$options['menu_close_on_link_click']}',
|
35 |
+
itemTriggerSubMenu: '{$options['menu_item_click_to_trigger_submenu']}',
|
36 |
+
linkElement: '.responsive-menu-item-link',
|
37 |
+
openMenu: function() {
|
38 |
+
$(this.trigger).addClass(this.activeClass);
|
39 |
+
$('html').addClass(this.openClass);
|
40 |
+
$('.responsive-menu-button-icon-active').hide();
|
41 |
+
$('.responsive-menu-button-icon-inactive').show();
|
42 |
+
this.setWrapperTranslate();
|
43 |
+
this.isOpen = true;
|
44 |
+
},
|
45 |
+
closeMenu: function() {
|
46 |
+
$(this.trigger).removeClass(this.activeClass);
|
47 |
+
$('html').removeClass(this.openClass);
|
48 |
+
$('.responsive-menu-button-icon-inactive').hide();
|
49 |
+
$('.responsive-menu-button-icon-active').show();
|
50 |
+
this.clearWrapperTranslate();
|
51 |
+
this.isOpen = false;
|
52 |
+
},
|
53 |
+
triggerMenu: function() {
|
54 |
+
this.isOpen ? this.closeMenu() : this.openMenu();
|
55 |
+
},
|
56 |
+
triggerSubArrow: function(subarrow) {
|
57 |
+
var sub_menu = $(subarrow).parent().next('.responsive-menu-submenu');
|
58 |
+
var self = this;
|
59 |
+
if(this.accordion == 'on') {
|
60 |
+
/* Get Top Most Parent and the siblings */
|
61 |
+
var top_siblings = sub_menu.parents('.responsive-menu-item-has-children').last().siblings('.responsive-menu-item-has-children');
|
62 |
+
var first_siblings = sub_menu.parents('.responsive-menu-item-has-children').first().siblings('.responsive-menu-item-has-children');
|
63 |
+
/* Close up just the top level parents to key the rest as it was */
|
64 |
+
top_siblings.children('.responsive-menu-submenu').slideUp(200, 'linear').removeClass('responsive-menu-submenu-open');
|
65 |
+
/* Set each parent arrow to inactive */
|
66 |
+
top_siblings.each(function() {
|
67 |
+
$(this).find('.responsive-menu-subarrow').first().html(self.inactiveArrow);
|
68 |
+
});
|
69 |
+
/* Now Repeat for the current item siblings */
|
70 |
+
first_siblings.children('.responsive-menu-submenu').slideUp(200, 'linear').removeClass('responsive-menu-submenu-open');
|
71 |
+
first_siblings.each(function() {
|
72 |
+
$(this).find('.responsive-menu-subarrow').first().html(self.inactiveArrow);
|
73 |
+
});
|
74 |
+
}
|
75 |
+
if(sub_menu.hasClass('responsive-menu-submenu-open')) {
|
76 |
+
sub_menu.slideUp(200, 'linear').removeClass('responsive-menu-submenu-open');
|
77 |
+
$(subarrow).html(this.inactiveArrow);
|
78 |
+
} else {
|
79 |
+
sub_menu.slideDown(200, 'linear').addClass('responsive-menu-submenu-open');
|
80 |
+
$(subarrow).html(this.activeArrow);
|
81 |
+
}
|
82 |
+
},
|
83 |
+
menuHeight: function() {
|
84 |
+
return $(this.container).height();
|
85 |
+
},
|
86 |
+
menuWidth: function() {
|
87 |
+
return $(this.container).width();
|
88 |
+
},
|
89 |
+
wrapperHeight: function() {
|
90 |
+
return $(this.wrapper).height();
|
91 |
+
},
|
92 |
+
setWrapperTranslate: function() {
|
93 |
+
switch(this.animationSide) {
|
94 |
+
case 'left':
|
95 |
+
translate = 'translateX(' + this.menuWidth() + 'px)'; break;
|
96 |
+
case 'right':
|
97 |
+
translate = 'translateX(-' + this.menuWidth() + 'px)'; break;
|
98 |
+
case 'top':
|
99 |
+
translate = 'translateY(' + this.wrapperHeight() + 'px)'; break;
|
100 |
+
case 'bottom':
|
101 |
+
translate = 'translateY(-' + this.menuHeight() + 'px)'; break;
|
102 |
+
}
|
103 |
+
if(this.animationType == 'push') {
|
104 |
+
$(this.pageWrapper).css({'transform':translate});
|
105 |
+
$('html, body').css('overflow-x', 'hidden');
|
106 |
+
}
|
107 |
+
if(this.pushButton == 'on') {
|
108 |
+
$('#responsive-menu-button').css({'transform':translate});
|
109 |
+
}
|
110 |
+
},
|
111 |
+
clearWrapperTranslate: function() {
|
112 |
+
self = this;
|
113 |
+
if(this.animationType == 'push') {
|
114 |
+
$(this.pageWrapper).css({'transform':''});
|
115 |
+
setTimeout(function() {
|
116 |
+
$('html, body').css('overflow-x', '');
|
117 |
+
}, self.animationSpeed);
|
118 |
+
}
|
119 |
+
if(this.pushButton == 'on') {
|
120 |
+
$('#responsive-menu-button').css({'transform':''});
|
121 |
+
}
|
122 |
+
},
|
123 |
+
init: function() {
|
124 |
+
var self = this;
|
125 |
+
$(this.trigger).on(this.triggerTypes, function(e){
|
126 |
+
e.stopPropagation();
|
127 |
+
self.triggerMenu();
|
128 |
+
});
|
129 |
+
$('.responsive-menu-subarrow').on('click', function(e) {
|
130 |
+
e.preventDefault();
|
131 |
+
e.stopPropagation();
|
132 |
+
self.triggerSubArrow(this);
|
133 |
+
});
|
134 |
+
$(window).resize(function() {
|
135 |
+
if($(window).width() > self.breakpoint) {
|
136 |
+
if(self.isOpen){
|
137 |
+
self.closeMenu();
|
138 |
+
}
|
139 |
+
} else {
|
140 |
+
if($('.responsive-menu-open').length>0){
|
141 |
+
self.setWrapperTranslate();
|
142 |
+
}
|
143 |
+
}
|
144 |
+
});
|
145 |
+
if(this.closeOnLinkClick == 'on') {
|
146 |
+
$(this.linkElement).on('click', function(e) {
|
147 |
+
e.preventDefault();
|
148 |
+
old_href = $(this).attr('href');
|
149 |
+
if(self.isOpen) {
|
150 |
+
if($(e.target).closest('.responsive-menu-subarrow').length) {
|
151 |
+
return;
|
152 |
+
}
|
153 |
+
self.closeMenu();
|
154 |
+
setTimeout(function() {
|
155 |
+
window.location = old_href;
|
156 |
+
}, self.animationSpeed);
|
157 |
+
}
|
158 |
+
});
|
159 |
+
}
|
160 |
+
if(this.closeOnBodyClick == 'on') {
|
161 |
+
$(document).on('click', 'body', function(e) {
|
162 |
+
if(self.isOpen) {
|
163 |
+
if($(e.target).closest('#responsive-menu-container').length || $(e.target).closest('#responsive-menu-button').length) {
|
164 |
+
return;
|
165 |
+
}
|
166 |
+
}
|
167 |
+
self.closeMenu();
|
168 |
+
});
|
169 |
+
}
|
170 |
+
if(this.itemTriggerSubMenu == 'on') {
|
171 |
+
$('.responsive-menu-item-has-children > ' + this.linkElement).on('click', function(e) {
|
172 |
+
e.preventDefault();
|
173 |
+
self.triggerSubArrow($(this).children('.responsive-menu-subarrow').first());
|
174 |
+
});
|
175 |
+
}
|
176 |
+
}
|
177 |
+
};
|
178 |
+
ResponsiveMenu.init();
|
179 |
+
});
|
180 |
+
|
181 |
+
JS;
|
182 |
+
|
183 |
+
return $js;
|
184 |
+
|
185 |
+
}
|
186 |
+
|
187 |
+
}
|
src/app/Mappers/ScssBaseMapper.php
ADDED
@@ -0,0 +1,200 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Mappers;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
|
6 |
+
class ScssBaseMapper extends ScssMapper {
|
7 |
+
|
8 |
+
public function map(OptionsCollection $options) {
|
9 |
+
|
10 |
+
$css = <<<CSS
|
11 |
+
|
12 |
+
button#responsive-menu-button,
|
13 |
+
#responsive-menu-container {
|
14 |
+
display: none;
|
15 |
+
-webkit-text-size-adjust: 100%;
|
16 |
+
}
|
17 |
+
|
18 |
+
@media screen and (max-width: {$options['breakpoint']}px) {
|
19 |
+
|
20 |
+
#responsive-menu-container {
|
21 |
+
display: block;
|
22 |
+
}
|
23 |
+
|
24 |
+
#responsive-menu-container {
|
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;
|
32 |
+
overflow-y: auto;
|
33 |
+
overflow-x: hidden;
|
34 |
+
.responsive-menu-search-box {
|
35 |
+
width: 100%;
|
36 |
+
padding: 0 2%;
|
37 |
+
border-radius: 2px;
|
38 |
+
height: 50px;
|
39 |
+
-webkit-appearance: none;
|
40 |
+
}
|
41 |
+
|
42 |
+
&.push-left,
|
43 |
+
&.slide-left {
|
44 |
+
transform: translateX(-100%);
|
45 |
+
-ms-transform: translateX(-100%);
|
46 |
+
-webkit-transform: translateX(-100%);
|
47 |
+
-moz-transform: translateX(-100%);
|
48 |
+
.responsive-menu-open & {
|
49 |
+
transform: translateX(0);
|
50 |
+
-ms-transform: translateX(0);
|
51 |
+
-webkit-transform: translateX(0);
|
52 |
+
-moz-transform: translateX(0);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
&.push-top,
|
57 |
+
&.slide-top {
|
58 |
+
transform: translateY(-100%);
|
59 |
+
-ms-transform: translateY(-100%);
|
60 |
+
-webkit-transform: translateY(-100%);
|
61 |
+
-moz-transform: translateY(-100%);
|
62 |
+
.responsive-menu-open & {
|
63 |
+
transform: translateY(0);
|
64 |
+
-ms-transform: translateY(0);
|
65 |
+
-webkit-transform: translateY(0);
|
66 |
+
-moz-transform: translateY(0);
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
&.push-right,
|
71 |
+
&.slide-right {
|
72 |
+
transform: translateX(100%);
|
73 |
+
-ms-transform: translateX(100%);
|
74 |
+
-webkit-transform: translateX(100%);
|
75 |
+
-moz-transform: translateX(100%);
|
76 |
+
.responsive-menu-open & {
|
77 |
+
transform: translateX(0);
|
78 |
+
-ms-transform: translateX(0);
|
79 |
+
-webkit-transform: translateX(0);
|
80 |
+
-moz-transform: translateX(0);
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
&.push-bottom,
|
85 |
+
&.slide-bottom {
|
86 |
+
transform: translateY(100%);
|
87 |
+
-ms-transform: translateY(100%);
|
88 |
+
-webkit-transform: translateY(100%);
|
89 |
+
-moz-transform: translateY(100%);
|
90 |
+
.responsive-menu-open & {
|
91 |
+
transform: translateY(0);
|
92 |
+
-ms-transform: translateY(0);
|
93 |
+
-webkit-transform: translateY(0);
|
94 |
+
-moz-transform: translateY(0);
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
// Reset Styles for all our elements
|
99 |
+
&, &:before, &:after, & *, & *:before, & *:after {
|
100 |
+
box-sizing: border-box;
|
101 |
+
margin: 0;
|
102 |
+
padding: 0;
|
103 |
+
}
|
104 |
+
|
105 |
+
#responsive-menu-search-box,
|
106 |
+
#responsive-menu-additional-content,
|
107 |
+
#responsive-menu-title {
|
108 |
+
padding: 25px 5%;
|
109 |
+
}
|
110 |
+
|
111 |
+
#responsive-menu {
|
112 |
+
&, ul {
|
113 |
+
width: 100%;
|
114 |
+
}
|
115 |
+
& ul.responsive-menu-submenu {
|
116 |
+
display: none;
|
117 |
+
&.responsive-menu-submenu-open {
|
118 |
+
display: block;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
@for \$i from 1 through 6 {
|
122 |
+
& ul.responsive-menu-submenu-depth-#{\$i}
|
123 |
+
a.responsive-menu-item-link {
|
124 |
+
padding-{$options['menu_text_alignment']}: 5% + (5% * \$i);
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
}
|
129 |
+
|
130 |
+
li.responsive-menu-item {
|
131 |
+
width: 100%;
|
132 |
+
list-style: none;
|
133 |
+
a {
|
134 |
+
width: 100%;
|
135 |
+
display: block;
|
136 |
+
text-decoration: none;
|
137 |
+
padding: 0 5%;
|
138 |
+
position: relative;
|
139 |
+
.fa {
|
140 |
+
margin-right: 15px;
|
141 |
+
}
|
142 |
+
.responsive-menu-subarrow {
|
143 |
+
position: absolute;
|
144 |
+
top: 0;
|
145 |
+
bottom: 0;
|
146 |
+
text-align: center;
|
147 |
+
overflow: hidden;
|
148 |
+
.fa {
|
149 |
+
margin-right: 0;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
button#responsive-menu-button {
|
157 |
+
.responsive-menu-button-icon-inactive {
|
158 |
+
display: none;
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
button#responsive-menu-button {
|
163 |
+
z-index: 99999;
|
164 |
+
display: none;
|
165 |
+
overflow: hidden;
|
166 |
+
img {
|
167 |
+
max-width: 100%;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
.responsive-menu-label {
|
172 |
+
display: inline-block;
|
173 |
+
font-weight: 600;
|
174 |
+
margin: 0 5px;
|
175 |
+
vertical-align: middle;
|
176 |
+
}
|
177 |
+
|
178 |
+
.responsive-menu-accessible {
|
179 |
+
display: inline-block;
|
180 |
+
}
|
181 |
+
|
182 |
+
.responsive-menu-accessible .responsive-menu-box {
|
183 |
+
display: inline-block;
|
184 |
+
vertical-align: middle;
|
185 |
+
}
|
186 |
+
|
187 |
+
.responsive-menu-label.responsive-menu-label-top,
|
188 |
+
.responsive-menu-label.responsive-menu-label-bottom
|
189 |
+
{
|
190 |
+
display: block;
|
191 |
+
margin: 0 auto;
|
192 |
+
}
|
193 |
+
|
194 |
+
}
|
195 |
+
CSS;
|
196 |
+
|
197 |
+
return $this->compiler->compile($css);
|
198 |
+
}
|
199 |
+
|
200 |
+
}
|
src/app/Mappers/ScssButtonMapper.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Mappers;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
|
6 |
+
class ScssButtonMapper extends ScssMapper {
|
7 |
+
|
8 |
+
public function map(OptionsCollection $options) {
|
9 |
+
|
10 |
+
$hamburger_css_dir = dirname(dirname(dirname(__FILE__))) . '/public/scss/hamburgers/hamburgers.scss';
|
11 |
+
$no_animation = $options['button_click_animation'] == 'off' ? '$hamburger-types: ();' : '';
|
12 |
+
|
13 |
+
$css = <<<CSS
|
14 |
+
|
15 |
+
@media screen and ( max-width: {$options['breakpoint']}px ) {
|
16 |
+
|
17 |
+
\$hamburger-layer-height: {$options['button_line_height']}px;
|
18 |
+
\$hamburger-layer-spacing: {$options['button_line_margin']}px;
|
19 |
+
\$hamburger-layer-color: {$options['button_line_colour']};
|
20 |
+
\$hamburger-layer-width: {$options['button_line_width']}px;
|
21 |
+
\$hamburger-hover-opacity: 1;
|
22 |
+
{$no_animation}
|
23 |
+
|
24 |
+
@import "{$hamburger_css_dir}";
|
25 |
+
|
26 |
+
button#responsive-menu-button {
|
27 |
+
width: {$options['button_width']}px;
|
28 |
+
height: {$options['button_height']}px;
|
29 |
+
@if '{$options['button_transparent_background']}' == 'off' {
|
30 |
+
background: {$options['button_background_colour']};
|
31 |
+
&:hover {
|
32 |
+
background: {$options['button_background_colour_hover']};
|
33 |
+
}
|
34 |
+
}
|
35 |
+
position: {$options['button_position_type']};
|
36 |
+
top: {$options['button_top']}px;
|
37 |
+
{$options['button_left_or_right']}: {$options['button_distance_from_side']}%;
|
38 |
+
.responsive-menu-box {
|
39 |
+
color: {$options['button_line_colour']};
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
.responsive-menu-label {
|
44 |
+
color: {$options['button_text_colour']};
|
45 |
+
font-size: {$options['button_font_size']}px;
|
46 |
+
line-height: {$options['button_title_line_height']}px;
|
47 |
+
@if '{$options['button_font']}' != '' {
|
48 |
+
font-family: '{$options['button_font']}';
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
button#responsive-menu-button {
|
53 |
+
display: inline-block;
|
54 |
+
transition: transform {$options['animation_speed']}s, background-color {$options['transition_speed']}s;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
CSS;
|
58 |
+
|
59 |
+
return $this->compiler->compile($css);
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
}
|
src/app/Mappers/ScssMapper.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Mappers;
|
4 |
+
|
5 |
+
class ScssMapper {
|
6 |
+
|
7 |
+
public function __construct(\scssc_free $compiler) {
|
8 |
+
$this->compiler = $compiler;
|
9 |
+
}
|
10 |
+
|
11 |
+
}
|
src/app/Mappers/ScssMenuMapper.php
ADDED
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Mappers;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
|
6 |
+
class ScssMenuMapper extends ScssMapper {
|
7 |
+
|
8 |
+
public function map(OptionsCollection $options) {
|
9 |
+
|
10 |
+
$css = <<<CSS
|
11 |
+
|
12 |
+
@media screen and ( max-width: {$options['breakpoint']}px ) {
|
13 |
+
|
14 |
+
@if '{$options['menu_close_on_body_click']}' == 'on' {
|
15 |
+
html.responsive-menu-open {
|
16 |
+
cursor: pointer;
|
17 |
+
#responsive-menu-container {
|
18 |
+
cursor: initial;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
@if '{$options['page_wrapper']}' != '' {
|
24 |
+
& {$options['page_wrapper']} {
|
25 |
+
transition: transform {$options['animation_speed']}s;
|
26 |
+
}
|
27 |
+
html.responsive-menu-open,
|
28 |
+
.responsive-menu-open body {
|
29 |
+
width: 100%;
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
#responsive-menu-container {
|
34 |
+
width: {$options['menu_width']}%;
|
35 |
+
{$options['menu_appear_from']}: 0;
|
36 |
+
background: {$options['menu_background_colour']};
|
37 |
+
transition: transform {$options['animation_speed']}s;
|
38 |
+
text-align: {$options['menu_text_alignment']};
|
39 |
+
|
40 |
+
& #responsive-menu-wrapper {
|
41 |
+
background: {$options['menu_background_colour']};
|
42 |
+
}
|
43 |
+
|
44 |
+
#responsive-menu-additional-content {
|
45 |
+
color: {$options['menu_additional_content_colour']};
|
46 |
+
}
|
47 |
+
|
48 |
+
.responsive-menu-search-box {
|
49 |
+
background: {$options['menu_search_box_background_colour']};
|
50 |
+
border: 2px solid {$options['menu_search_box_border_colour']};
|
51 |
+
color: {$options['menu_search_box_text_colour']};
|
52 |
+
&:-ms-input-placeholder {
|
53 |
+
color: {$options['menu_search_box_placholder_colour']};
|
54 |
+
}
|
55 |
+
&:-webkit-input-placeholder {
|
56 |
+
color: {$options['menu_search_box_placholder_colour']};
|
57 |
+
}
|
58 |
+
&:-moz-placeholder {
|
59 |
+
color: {$options['menu_search_box_placholder_colour']};
|
60 |
+
opacity: 1;
|
61 |
+
}
|
62 |
+
&::-moz-placeholder {
|
63 |
+
color: {$options['menu_search_box_placholder_colour']};
|
64 |
+
opacity: 1;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
@if '{$options['menu_maximum_width']}' != '' {
|
69 |
+
max-width: {$options['menu_maximum_width']}px;
|
70 |
+
}
|
71 |
+
@if '{$options['menu_minimum_width']}' != '' {
|
72 |
+
min-width: {$options['menu_minimum_width']}px;
|
73 |
+
}
|
74 |
+
|
75 |
+
@if '{$options['menu_font']}' != '' {
|
76 |
+
font-family: '{$options['menu_font']}';
|
77 |
+
}
|
78 |
+
|
79 |
+
& .responsive-menu-item-link, & #responsive-menu-title, & .responsive-menu-subarrow {
|
80 |
+
transition: background-color {$options['transition_speed']}s, border-color {$options['transition_speed']}s, color {$options['transition_speed']}s;
|
81 |
+
}
|
82 |
+
|
83 |
+
#responsive-menu-title {
|
84 |
+
background-color: {$options['menu_title_background_colour']};
|
85 |
+
color: {$options['menu_title_colour']};
|
86 |
+
font-size: {$options['menu_title_font_size']}px;
|
87 |
+
a {
|
88 |
+
color: {$options['menu_title_colour']};
|
89 |
+
font-size: {$options['menu_title_font_size']}px;
|
90 |
+
text-decoration: none;
|
91 |
+
&:hover {
|
92 |
+
color: {$options['menu_title_hover_colour']};
|
93 |
+
}
|
94 |
+
}
|
95 |
+
&:hover {
|
96 |
+
background-color: {$options['menu_title_background_hover_colour']};
|
97 |
+
color: {$options['menu_title_hover_colour']};
|
98 |
+
a {
|
99 |
+
color: {$options['menu_title_hover_colour']};
|
100 |
+
}
|
101 |
+
}
|
102 |
+
#responsive-menu-title-image {
|
103 |
+
display: inline-block;
|
104 |
+
vertical-align: middle;
|
105 |
+
margin-right: 15px;
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
#responsive-menu {
|
110 |
+
|
111 |
+
li.responsive-menu-item {
|
112 |
+
.responsive-menu-item-link {
|
113 |
+
font-size: {$options['menu_font_size']}px;
|
114 |
+
}
|
115 |
+
a {
|
116 |
+
line-height: {$options['menu_links_height']}px;
|
117 |
+
border-top: 1px solid {$options['menu_item_border_colour']};
|
118 |
+
border-bottom: 1px solid {$options['menu_item_border_colour']};
|
119 |
+
color: {$options['menu_link_colour']};
|
120 |
+
background-color: {$options['menu_item_background_colour']};
|
121 |
+
&:hover {
|
122 |
+
color: {$options['menu_link_hover_colour']};
|
123 |
+
background-color: {$options['menu_item_background_hover_colour']};
|
124 |
+
border-color: {$options['menu_item_border_colour_hover']};
|
125 |
+
.responsive-menu-subarrow {
|
126 |
+
color: {$options['menu_sub_arrow_shape_hover_colour']};
|
127 |
+
border-color: {$options['menu_sub_arrow_border_hover_colour']};
|
128 |
+
background-color: {$options['menu_sub_arrow_background_hover_colour']};
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
.responsive-menu-subarrow {
|
133 |
+
{$options['arrow_position']}: 0;
|
134 |
+
height: {$options['submenu_arrow_height']}px;
|
135 |
+
line-height: {$options['submenu_arrow_height']}px;
|
136 |
+
width: {$options['submenu_arrow_width']}px;
|
137 |
+
color: {$options['menu_sub_arrow_shape_colour']};
|
138 |
+
border-left: 1px solid {$options['menu_sub_arrow_border_colour']};
|
139 |
+
background-color: {$options['menu_sub_arrow_background_colour']};
|
140 |
+
|
141 |
+
&:hover {
|
142 |
+
color: {$options['menu_sub_arrow_shape_hover_colour']};
|
143 |
+
border-color: {$options['menu_sub_arrow_border_hover_colour']};
|
144 |
+
background-color: {$options['menu_sub_arrow_background_hover_colour']};
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
&.responsive-menu-current-item > .responsive-menu-item-link {
|
149 |
+
background-color: {$options['menu_current_item_background_colour']};
|
150 |
+
color: {$options['menu_current_link_colour']};
|
151 |
+
border-color: {$options['menu_current_item_border_colour']};
|
152 |
+
&:hover {
|
153 |
+
background-color: {$options['menu_current_item_background_hover_colour']};
|
154 |
+
color: {$options['menu_current_link_hover_colour']};
|
155 |
+
border-color: {$options['menu_current_item_border_hover_colour']};
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
160 |
+
}
|
161 |
+
@if '{$options['menu_to_hide']}' != '' {
|
162 |
+
& {$options['menu_to_hide']} {
|
163 |
+
display: none;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
CSS;
|
169 |
+
|
170 |
+
return $this->compiler->compile($css);
|
171 |
+
}
|
172 |
+
|
173 |
+
}
|
src/app/Mappers/scss.inc.php
ADDED
@@ -0,0 +1,4577 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* SCSS compiler written in PHP
|
4 |
+
*
|
5 |
+
* @copyright 2012-2013 Leaf Corcoran
|
6 |
+
*
|
7 |
+
* @license http://opensource.org/licenses/gpl-license GPL-3.0
|
8 |
+
* @license http://opensource.org/licenses/MIT MIT
|
9 |
+
*
|
10 |
+
* @link http://leafo.net/scssphp
|
11 |
+
*/
|
12 |
+
|
13 |
+
/**
|
14 |
+
* The scss compiler and parser.
|
15 |
+
*
|
16 |
+
* Converting SCSS to CSS is a three stage process. The incoming file is parsed
|
17 |
+
* by `scss_parser` into a syntax tree, then it is compiled into another tree
|
18 |
+
* representing the CSS structure by `scssc`. The CSS tree is fed into a
|
19 |
+
* formatter, like `scss_formatter` which then outputs CSS as a string.
|
20 |
+
*
|
21 |
+
* During the first compile, all values are *reduced*, which means that their
|
22 |
+
* types are brought to the lowest form before being dump as strings. This
|
23 |
+
* handles math equations, variable dereferences, and the like.
|
24 |
+
*
|
25 |
+
* The `parse` function of `scssc` is the entry point.
|
26 |
+
*
|
27 |
+
* In summary:
|
28 |
+
*
|
29 |
+
* The `scssc` class creates an instance of the parser, feeds it SCSS code,
|
30 |
+
* then transforms the resulting tree to a CSS tree. This class also holds the
|
31 |
+
* evaluation context, such as all available mixins and variables at any given
|
32 |
+
* time.
|
33 |
+
*
|
34 |
+
* The `scss_parser` class is only concerned with parsing its input.
|
35 |
+
*
|
36 |
+
* The `scss_formatter` takes a CSS tree, and dumps it to a formatted string,
|
37 |
+
* handling things like indentation.
|
38 |
+
*/
|
39 |
+
|
40 |
+
/**
|
41 |
+
* SCSS compiler
|
42 |
+
*
|
43 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
44 |
+
*/
|
45 |
+
class scssc_free {
|
46 |
+
static public $VERSION = 'v0.0.12';
|
47 |
+
|
48 |
+
static protected $operatorNames = array(
|
49 |
+
'+' => "add",
|
50 |
+
'-' => "sub",
|
51 |
+
'*' => "mul",
|
52 |
+
'/' => "div",
|
53 |
+
'%' => "mod",
|
54 |
+
|
55 |
+
'==' => "eq",
|
56 |
+
'!=' => "neq",
|
57 |
+
'<' => "lt",
|
58 |
+
'>' => "gt",
|
59 |
+
|
60 |
+
'<=' => "lte",
|
61 |
+
'>=' => "gte",
|
62 |
+
);
|
63 |
+
|
64 |
+
static protected $namespaces = array(
|
65 |
+
"special" => "%",
|
66 |
+
"mixin" => "@",
|
67 |
+
"function" => "^",
|
68 |
+
);
|
69 |
+
|
70 |
+
static protected $unitTable = array(
|
71 |
+
"in" => array(
|
72 |
+
"in" => 1,
|
73 |
+
"pt" => 72,
|
74 |
+
"pc" => 6,
|
75 |
+
"cm" => 2.54,
|
76 |
+
"mm" => 25.4,
|
77 |
+
"px" => 96,
|
78 |
+
)
|
79 |
+
);
|
80 |
+
|
81 |
+
static public $true = array("keyword", "true");
|
82 |
+
static public $false = array("keyword", "false");
|
83 |
+
static public $null = array("null");
|
84 |
+
|
85 |
+
static public $defaultValue = array("keyword", "");
|
86 |
+
static public $selfSelector = array("self");
|
87 |
+
|
88 |
+
protected $importPaths = array("");
|
89 |
+
protected $importCache = array();
|
90 |
+
|
91 |
+
protected $userFunctions = array();
|
92 |
+
protected $registeredVars = array();
|
93 |
+
|
94 |
+
protected $numberPrecision = 5;
|
95 |
+
|
96 |
+
protected $formatter = "scss_formatter_nested_free";
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Compile scss
|
100 |
+
*
|
101 |
+
* @param string $code
|
102 |
+
* @param string $name
|
103 |
+
*
|
104 |
+
* @return string
|
105 |
+
*/
|
106 |
+
public function compile($code, $name = null)
|
107 |
+
{
|
108 |
+
try {
|
109 |
+
$this->indentLevel = -1;
|
110 |
+
$this->commentsSeen = array();
|
111 |
+
$this->extends = array();
|
112 |
+
$this->extendsMap = array();
|
113 |
+
$this->parsedFiles = array();
|
114 |
+
$this->env = null;
|
115 |
+
$this->scope = null;
|
116 |
+
|
117 |
+
$locale = setlocale(LC_NUMERIC, 0);
|
118 |
+
setlocale(LC_NUMERIC, "C");
|
119 |
+
|
120 |
+
$this->parser = new scss_parser_free($name);
|
121 |
+
|
122 |
+
$tree = $this->parser->parse($code);
|
123 |
+
|
124 |
+
$this->formatter = new $this->formatter();
|
125 |
+
|
126 |
+
$this->pushEnv($tree);
|
127 |
+
$this->injectVariables($this->registeredVars);
|
128 |
+
$this->compileRoot($tree);
|
129 |
+
$this->popEnv();
|
130 |
+
|
131 |
+
$out = $this->formatter->format($this->scope);
|
132 |
+
|
133 |
+
setlocale(LC_NUMERIC, $locale);
|
134 |
+
|
135 |
+
return $out;
|
136 |
+
} catch(Exception $e) {}
|
137 |
+
|
138 |
+
}
|
139 |
+
|
140 |
+
protected function isSelfExtend($target, $origin) {
|
141 |
+
foreach ($origin as $sel) {
|
142 |
+
if (in_array($target, $sel)) {
|
143 |
+
return true;
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
return false;
|
148 |
+
}
|
149 |
+
|
150 |
+
protected function pushExtends($target, $origin) {
|
151 |
+
if ($this->isSelfExtend($target, $origin)) {
|
152 |
+
return;
|
153 |
+
}
|
154 |
+
|
155 |
+
$i = count($this->extends);
|
156 |
+
$this->extends[] = array($target, $origin);
|
157 |
+
|
158 |
+
foreach ($target as $part) {
|
159 |
+
if (isset($this->extendsMap[$part])) {
|
160 |
+
$this->extendsMap[$part][] = $i;
|
161 |
+
} else {
|
162 |
+
$this->extendsMap[$part] = array($i);
|
163 |
+
}
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
protected function makeOutputBlock($type, $selectors = null) {
|
168 |
+
$out = new stdClass;
|
169 |
+
$out->type = $type;
|
170 |
+
$out->lines = array();
|
171 |
+
$out->children = array();
|
172 |
+
$out->parent = $this->scope;
|
173 |
+
$out->selectors = $selectors;
|
174 |
+
$out->depth = $this->env->depth;
|
175 |
+
|
176 |
+
return $out;
|
177 |
+
}
|
178 |
+
|
179 |
+
protected function matchExtendsSingle($single, &$outOrigin) {
|
180 |
+
$counts = array();
|
181 |
+
foreach ($single as $part) {
|
182 |
+
if (!is_string($part)) return false; // hmm
|
183 |
+
|
184 |
+
if (isset($this->extendsMap[$part])) {
|
185 |
+
foreach ($this->extendsMap[$part] as $idx) {
|
186 |
+
$counts[$idx] =
|
187 |
+
isset($counts[$idx]) ? $counts[$idx] + 1 : 1;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
$outOrigin = array();
|
193 |
+
$found = false;
|
194 |
+
|
195 |
+
foreach ($counts as $idx => $count) {
|
196 |
+
list($target, $origin) = $this->extends[$idx];
|
197 |
+
|
198 |
+
// check count
|
199 |
+
if ($count != count($target)) continue;
|
200 |
+
|
201 |
+
// check if target is subset of single
|
202 |
+
if (array_diff(array_intersect($single, $target), $target)) continue;
|
203 |
+
|
204 |
+
$rem = array_diff($single, $target);
|
205 |
+
|
206 |
+
foreach ($origin as $j => $new) {
|
207 |
+
// prevent infinite loop when target extends itself
|
208 |
+
foreach ($new as $new_selector) {
|
209 |
+
if (!array_diff($single, $new_selector)) {
|
210 |
+
continue 2;
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
$origin[$j][count($origin[$j]) - 1] = $this->combineSelectorSingle(end($new), $rem);
|
215 |
+
}
|
216 |
+
|
217 |
+
$outOrigin = array_merge($outOrigin, $origin);
|
218 |
+
|
219 |
+
$found = true;
|
220 |
+
}
|
221 |
+
|
222 |
+
return $found;
|
223 |
+
}
|
224 |
+
|
225 |
+
protected function combineSelectorSingle($base, $other) {
|
226 |
+
$tag = null;
|
227 |
+
$out = array();
|
228 |
+
|
229 |
+
foreach (array($base, $other) as $single) {
|
230 |
+
foreach ($single as $part) {
|
231 |
+
if (preg_match('/^[^\[.#:]/', $part)) {
|
232 |
+
$tag = $part;
|
233 |
+
} else {
|
234 |
+
$out[] = $part;
|
235 |
+
}
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
if ($tag) {
|
240 |
+
array_unshift($out, $tag);
|
241 |
+
}
|
242 |
+
|
243 |
+
return $out;
|
244 |
+
}
|
245 |
+
|
246 |
+
protected function matchExtends($selector, &$out, $from = 0, $initial=true) {
|
247 |
+
foreach ($selector as $i => $part) {
|
248 |
+
if ($i < $from) continue;
|
249 |
+
|
250 |
+
if ($this->matchExtendsSingle($part, $origin)) {
|
251 |
+
$before = array_slice($selector, 0, $i);
|
252 |
+
$after = array_slice($selector, $i + 1);
|
253 |
+
|
254 |
+
foreach ($origin as $new) {
|
255 |
+
$k = 0;
|
256 |
+
|
257 |
+
// remove shared parts
|
258 |
+
if ($initial) {
|
259 |
+
foreach ($before as $k => $val) {
|
260 |
+
if (!isset($new[$k]) || $val != $new[$k]) {
|
261 |
+
break;
|
262 |
+
}
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
$result = array_merge(
|
267 |
+
$before,
|
268 |
+
$k > 0 ? array_slice($new, $k) : $new,
|
269 |
+
$after);
|
270 |
+
|
271 |
+
|
272 |
+
if ($result == $selector) continue;
|
273 |
+
$out[] = $result;
|
274 |
+
|
275 |
+
// recursively check for more matches
|
276 |
+
$this->matchExtends($result, $out, $i, false);
|
277 |
+
|
278 |
+
// selector sequence merging
|
279 |
+
if (!empty($before) && count($new) > 1) {
|
280 |
+
$result2 = array_merge(
|
281 |
+
array_slice($new, 0, -1),
|
282 |
+
$k > 0 ? array_slice($before, $k) : $before,
|
283 |
+
array_slice($new, -1),
|
284 |
+
$after);
|
285 |
+
|
286 |
+
$out[] = $result2;
|
287 |
+
}
|
288 |
+
}
|
289 |
+
}
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
protected function flattenSelectors($block, $parentKey = null) {
|
294 |
+
if ($block->selectors) {
|
295 |
+
$selectors = array();
|
296 |
+
foreach ($block->selectors as $s) {
|
297 |
+
$selectors[] = $s;
|
298 |
+
if (!is_array($s)) continue;
|
299 |
+
// check extends
|
300 |
+
if (!empty($this->extendsMap)) {
|
301 |
+
$this->matchExtends($s, $selectors);
|
302 |
+
}
|
303 |
+
}
|
304 |
+
|
305 |
+
$block->selectors = array();
|
306 |
+
$placeholderSelector = false;
|
307 |
+
foreach ($selectors as $selector) {
|
308 |
+
if ($this->hasSelectorPlaceholder($selector)) {
|
309 |
+
$placeholderSelector = true;
|
310 |
+
continue;
|
311 |
+
}
|
312 |
+
$block->selectors[] = $this->compileSelector($selector);
|
313 |
+
}
|
314 |
+
|
315 |
+
if ($placeholderSelector && 0 == count($block->selectors) && null !== $parentKey) {
|
316 |
+
unset($block->parent->children[$parentKey]);
|
317 |
+
return;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
foreach ($block->children as $key => $child) {
|
322 |
+
$this->flattenSelectors($child, $key);
|
323 |
+
}
|
324 |
+
}
|
325 |
+
|
326 |
+
protected function compileRoot($rootBlock)
|
327 |
+
{
|
328 |
+
$this->scope = $this->makeOutputBlock('root');
|
329 |
+
|
330 |
+
$this->compileChildren($rootBlock->children, $this->scope);
|
331 |
+
$this->flattenSelectors($this->scope);
|
332 |
+
}
|
333 |
+
|
334 |
+
protected function compileMedia($media) {
|
335 |
+
$this->pushEnv($media);
|
336 |
+
|
337 |
+
$mediaQuery = $this->compileMediaQuery($this->multiplyMedia($this->env));
|
338 |
+
|
339 |
+
if (!empty($mediaQuery)) {
|
340 |
+
|
341 |
+
$this->scope = $this->makeOutputBlock("media", array($mediaQuery));
|
342 |
+
|
343 |
+
$parentScope = $this->mediaParent($this->scope);
|
344 |
+
|
345 |
+
$parentScope->children[] = $this->scope;
|
346 |
+
|
347 |
+
// top level properties in a media cause it to be wrapped
|
348 |
+
$needsWrap = false;
|
349 |
+
foreach ($media->children as $child) {
|
350 |
+
$type = $child[0];
|
351 |
+
if ($type !== 'block' && $type !== 'media' && $type !== 'directive') {
|
352 |
+
$needsWrap = true;
|
353 |
+
break;
|
354 |
+
}
|
355 |
+
}
|
356 |
+
|
357 |
+
if ($needsWrap) {
|
358 |
+
$wrapped = (object)array(
|
359 |
+
"selectors" => array(),
|
360 |
+
"children" => $media->children
|
361 |
+
);
|
362 |
+
$media->children = array(array("block", $wrapped));
|
363 |
+
}
|
364 |
+
|
365 |
+
$this->compileChildren($media->children, $this->scope);
|
366 |
+
|
367 |
+
$this->scope = $this->scope->parent;
|
368 |
+
}
|
369 |
+
|
370 |
+
$this->popEnv();
|
371 |
+
}
|
372 |
+
|
373 |
+
protected function mediaParent($scope) {
|
374 |
+
while (!empty($scope->parent)) {
|
375 |
+
if (!empty($scope->type) && $scope->type != "media") {
|
376 |
+
break;
|
377 |
+
}
|
378 |
+
$scope = $scope->parent;
|
379 |
+
}
|
380 |
+
|
381 |
+
return $scope;
|
382 |
+
}
|
383 |
+
|
384 |
+
// TODO refactor compileNestedBlock and compileMedia into same thing
|
385 |
+
protected function compileNestedBlock($block, $selectors) {
|
386 |
+
$this->pushEnv($block);
|
387 |
+
|
388 |
+
$this->scope = $this->makeOutputBlock($block->type, $selectors);
|
389 |
+
$this->scope->parent->children[] = $this->scope;
|
390 |
+
$this->compileChildren($block->children, $this->scope);
|
391 |
+
|
392 |
+
$this->scope = $this->scope->parent;
|
393 |
+
$this->popEnv();
|
394 |
+
}
|
395 |
+
|
396 |
+
/**
|
397 |
+
* Recursively compiles a block.
|
398 |
+
*
|
399 |
+
* A block is analogous to a CSS block in most cases. A single SCSS document
|
400 |
+
* is encapsulated in a block when parsed, but it does not have parent tags
|
401 |
+
* so all of its children appear on the root level when compiled.
|
402 |
+
*
|
403 |
+
* Blocks are made up of selectors and children.
|
404 |
+
*
|
405 |
+
* The children of a block are just all the blocks that are defined within.
|
406 |
+
*
|
407 |
+
* Compiling the block involves pushing a fresh environment on the stack,
|
408 |
+
* and iterating through the props, compiling each one.
|
409 |
+
*
|
410 |
+
* @see scss::compileChild()
|
411 |
+
*
|
412 |
+
* @param \StdClass $block
|
413 |
+
*/
|
414 |
+
protected function compileBlock($block) {
|
415 |
+
$env = $this->pushEnv($block);
|
416 |
+
|
417 |
+
$env->selectors =
|
418 |
+
array_map(array($this, "evalSelector"), $block->selectors);
|
419 |
+
|
420 |
+
$out = $this->makeOutputBlock(null, $this->multiplySelectors($env));
|
421 |
+
$this->scope->children[] = $out;
|
422 |
+
$this->compileChildren($block->children, $out);
|
423 |
+
|
424 |
+
$this->popEnv();
|
425 |
+
}
|
426 |
+
|
427 |
+
// joins together .classes and #ids
|
428 |
+
protected function flattenSelectorSingle($single) {
|
429 |
+
$joined = array();
|
430 |
+
foreach ($single as $part) {
|
431 |
+
if (empty($joined) ||
|
432 |
+
!is_string($part) ||
|
433 |
+
preg_match('/[\[.:#%]/', $part))
|
434 |
+
{
|
435 |
+
$joined[] = $part;
|
436 |
+
continue;
|
437 |
+
}
|
438 |
+
|
439 |
+
if (is_array(end($joined))) {
|
440 |
+
$joined[] = $part;
|
441 |
+
} else {
|
442 |
+
$joined[count($joined) - 1] .= $part;
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
return $joined;
|
447 |
+
}
|
448 |
+
|
449 |
+
// replaces all the interpolates
|
450 |
+
protected function evalSelector($selector) {
|
451 |
+
return array_map(array($this, "evalSelectorPart"), $selector);
|
452 |
+
}
|
453 |
+
|
454 |
+
protected function evalSelectorPart($piece) {
|
455 |
+
foreach ($piece as &$p) {
|
456 |
+
if (!is_array($p)) continue;
|
457 |
+
|
458 |
+
switch ($p[0]) {
|
459 |
+
case "interpolate":
|
460 |
+
$p = $this->compileValue($p);
|
461 |
+
break;
|
462 |
+
case "string":
|
463 |
+
$p = $this->compileValue($p);
|
464 |
+
break;
|
465 |
+
}
|
466 |
+
}
|
467 |
+
|
468 |
+
return $this->flattenSelectorSingle($piece);
|
469 |
+
}
|
470 |
+
|
471 |
+
// compiles to string
|
472 |
+
// self(&) should have been replaced by now
|
473 |
+
protected function compileSelector($selector) {
|
474 |
+
if (!is_array($selector)) return $selector; // media and the like
|
475 |
+
|
476 |
+
return implode(" ", array_map(
|
477 |
+
array($this, "compileSelectorPart"), $selector));
|
478 |
+
}
|
479 |
+
|
480 |
+
protected function compileSelectorPart($piece) {
|
481 |
+
foreach ($piece as &$p) {
|
482 |
+
if (!is_array($p)) continue;
|
483 |
+
|
484 |
+
switch ($p[0]) {
|
485 |
+
case "self":
|
486 |
+
$p = "&";
|
487 |
+
break;
|
488 |
+
default:
|
489 |
+
$p = $this->compileValue($p);
|
490 |
+
break;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
return implode($piece);
|
495 |
+
}
|
496 |
+
|
497 |
+
protected function hasSelectorPlaceholder($selector)
|
498 |
+
{
|
499 |
+
if (!is_array($selector)) return false;
|
500 |
+
|
501 |
+
foreach ($selector as $parts) {
|
502 |
+
foreach ($parts as $part) {
|
503 |
+
if ('%' == $part[0]) {
|
504 |
+
return true;
|
505 |
+
}
|
506 |
+
}
|
507 |
+
}
|
508 |
+
|
509 |
+
return false;
|
510 |
+
}
|
511 |
+
|
512 |
+
protected function compileChildren($stms, $out) {
|
513 |
+
foreach ($stms as $stm) {
|
514 |
+
$ret = $this->compileChild($stm, $out);
|
515 |
+
if (isset($ret)) return $ret;
|
516 |
+
}
|
517 |
+
}
|
518 |
+
|
519 |
+
protected function compileMediaQuery($queryList) {
|
520 |
+
$out = "@media";
|
521 |
+
$first = true;
|
522 |
+
foreach ($queryList as $query){
|
523 |
+
$type = null;
|
524 |
+
$parts = array();
|
525 |
+
foreach ($query as $q) {
|
526 |
+
switch ($q[0]) {
|
527 |
+
case "mediaType":
|
528 |
+
if ($type) {
|
529 |
+
$type = $this->mergeMediaTypes($type, array_map(array($this, "compileValue"), array_slice($q, 1)));
|
530 |
+
if (empty($type)) { // merge failed
|
531 |
+
return null;
|
532 |
+
}
|
533 |
+
} else {
|
534 |
+
$type = array_map(array($this, "compileValue"), array_slice($q, 1));
|
535 |
+
}
|
536 |
+
break;
|
537 |
+
case "mediaExp":
|
538 |
+
if (isset($q[2])) {
|
539 |
+
$parts[] = "(". $this->compileValue($q[1]) . $this->formatter->assignSeparator . $this->compileValue($q[2]) . ")";
|
540 |
+
} else {
|
541 |
+
$parts[] = "(" . $this->compileValue($q[1]) . ")";
|
542 |
+
}
|
543 |
+
break;
|
544 |
+
}
|
545 |
+
}
|
546 |
+
if ($type) {
|
547 |
+
array_unshift($parts, implode(' ', array_filter($type)));
|
548 |
+
}
|
549 |
+
if (!empty($parts)) {
|
550 |
+
if ($first) {
|
551 |
+
$first = false;
|
552 |
+
$out .= " ";
|
553 |
+
} else {
|
554 |
+
$out .= $this->formatter->tagSeparator;
|
555 |
+
}
|
556 |
+
$out .= implode(" and ", $parts);
|
557 |
+
}
|
558 |
+
}
|
559 |
+
return $out;
|
560 |
+
}
|
561 |
+
|
562 |
+
protected function mergeMediaTypes($type1, $type2) {
|
563 |
+
if (empty($type1)) {
|
564 |
+
return $type2;
|
565 |
+
}
|
566 |
+
if (empty($type2)) {
|
567 |
+
return $type1;
|
568 |
+
}
|
569 |
+
$m1 = '';
|
570 |
+
$t1 = '';
|
571 |
+
if (count($type1) > 1) {
|
572 |
+
$m1= strtolower($type1[0]);
|
573 |
+
$t1= strtolower($type1[1]);
|
574 |
+
} else {
|
575 |
+
$t1 = strtolower($type1[0]);
|
576 |
+
}
|
577 |
+
$m2 = '';
|
578 |
+
$t2 = '';
|
579 |
+
if (count($type2) > 1) {
|
580 |
+
$m2 = strtolower($type2[0]);
|
581 |
+
$t2 = strtolower($type2[1]);
|
582 |
+
} else {
|
583 |
+
$t2 = strtolower($type2[0]);
|
584 |
+
}
|
585 |
+
if (($m1 == 'not') ^ ($m2 == 'not')) {
|
586 |
+
if ($t1 == $t2) {
|
587 |
+
return null;
|
588 |
+
}
|
589 |
+
return array(
|
590 |
+
$m1 == 'not' ? $m2 : $m1,
|
591 |
+
$m1 == 'not' ? $t2 : $t1
|
592 |
+
);
|
593 |
+
} elseif ($m1 == 'not' && $m2 == 'not') {
|
594 |
+
# CSS has no way of representing "neither screen nor print"
|
595 |
+
if ($t1 != $t2) {
|
596 |
+
return null;
|
597 |
+
}
|
598 |
+
return array('not', $t1);
|
599 |
+
} elseif ($t1 != $t2) {
|
600 |
+
return null;
|
601 |
+
} else { // t1 == t2, neither m1 nor m2 are "not"
|
602 |
+
return array(empty($m1)? $m2 : $m1, $t1);
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
// returns true if the value was something that could be imported
|
607 |
+
protected function compileImport($rawPath, $out) {
|
608 |
+
if ($rawPath[0] == "string") {
|
609 |
+
$path = $this->compileStringContent($rawPath);
|
610 |
+
if ($path = $this->findImport($path)) {
|
611 |
+
$this->importFile($path, $out);
|
612 |
+
return true;
|
613 |
+
}
|
614 |
+
return false;
|
615 |
+
}
|
616 |
+
if ($rawPath[0] == "list") {
|
617 |
+
// handle a list of strings
|
618 |
+
if (count($rawPath[2]) == 0) return false;
|
619 |
+
foreach ($rawPath[2] as $path) {
|
620 |
+
if ($path[0] != "string") return false;
|
621 |
+
}
|
622 |
+
|
623 |
+
foreach ($rawPath[2] as $path) {
|
624 |
+
$this->compileImport($path, $out);
|
625 |
+
}
|
626 |
+
|
627 |
+
return true;
|
628 |
+
}
|
629 |
+
|
630 |
+
return false;
|
631 |
+
}
|
632 |
+
|
633 |
+
// return a value to halt execution
|
634 |
+
protected function compileChild($child, $out) {
|
635 |
+
$this->sourcePos = isset($child[-1]) ? $child[-1] : -1;
|
636 |
+
$this->sourceParser = isset($child[-2]) ? $child[-2] : $this->parser;
|
637 |
+
|
638 |
+
switch ($child[0]) {
|
639 |
+
case "import":
|
640 |
+
list(,$rawPath) = $child;
|
641 |
+
$rawPath = $this->reduce($rawPath);
|
642 |
+
if (!$this->compileImport($rawPath, $out)) {
|
643 |
+
$out->lines[] = "@import " . $this->compileValue($rawPath) . ";";
|
644 |
+
}
|
645 |
+
break;
|
646 |
+
case "directive":
|
647 |
+
list(, $directive) = $child;
|
648 |
+
$s = "@" . $directive->name;
|
649 |
+
if (!empty($directive->value)) {
|
650 |
+
$s .= " " . $this->compileValue($directive->value);
|
651 |
+
}
|
652 |
+
$this->compileNestedBlock($directive, array($s));
|
653 |
+
break;
|
654 |
+
case "media":
|
655 |
+
$this->compileMedia($child[1]);
|
656 |
+
break;
|
657 |
+
case "block":
|
658 |
+
$this->compileBlock($child[1]);
|
659 |
+
break;
|
660 |
+
case "charset":
|
661 |
+
$out->lines[] = "@charset ".$this->compileValue($child[1]).";";
|
662 |
+
break;
|
663 |
+
case "assign":
|
664 |
+
list(,$name, $value) = $child;
|
665 |
+
if ($name[0] == "var") {
|
666 |
+
$isDefault = !empty($child[3]);
|
667 |
+
|
668 |
+
if ($isDefault) {
|
669 |
+
$existingValue = $this->get($name[1], true);
|
670 |
+
$shouldSet = $existingValue === true || $existingValue == self::$null;
|
671 |
+
}
|
672 |
+
|
673 |
+
if (!$isDefault || $shouldSet) {
|
674 |
+
$this->set($name[1], $this->reduce($value));
|
675 |
+
}
|
676 |
+
break;
|
677 |
+
}
|
678 |
+
|
679 |
+
// if the value reduces to null from something else then
|
680 |
+
// the property should be discarded
|
681 |
+
if ($value[0] != "null") {
|
682 |
+
$value = $this->reduce($value);
|
683 |
+
if ($value[0] == "null") {
|
684 |
+
break;
|
685 |
+
}
|
686 |
+
}
|
687 |
+
|
688 |
+
$compiledValue = $this->compileValue($value);
|
689 |
+
$out->lines[] = $this->formatter->property(
|
690 |
+
$this->compileValue($name),
|
691 |
+
$compiledValue);
|
692 |
+
break;
|
693 |
+
case "comment":
|
694 |
+
$out->lines[] = $child[1];
|
695 |
+
break;
|
696 |
+
case "mixin":
|
697 |
+
case "function":
|
698 |
+
list(,$block) = $child;
|
699 |
+
$this->set(self::$namespaces[$block->type] . $block->name, $block);
|
700 |
+
break;
|
701 |
+
case "extend":
|
702 |
+
list(, $selectors) = $child;
|
703 |
+
foreach ($selectors as $sel) {
|
704 |
+
// only use the first one
|
705 |
+
$sel = current($this->evalSelector($sel));
|
706 |
+
$this->pushExtends($sel, $out->selectors);
|
707 |
+
}
|
708 |
+
break;
|
709 |
+
case "if":
|
710 |
+
list(, $if) = $child;
|
711 |
+
if ($this->isTruthy($this->reduce($if->cond, true))) {
|
712 |
+
return $this->compileChildren($if->children, $out);
|
713 |
+
} else {
|
714 |
+
foreach ($if->cases as $case) {
|
715 |
+
if ($case->type == "else" ||
|
716 |
+
$case->type == "elseif" && $this->isTruthy($this->reduce($case->cond)))
|
717 |
+
{
|
718 |
+
return $this->compileChildren($case->children, $out);
|
719 |
+
}
|
720 |
+
}
|
721 |
+
}
|
722 |
+
break;
|
723 |
+
case "return":
|
724 |
+
return $this->reduce($child[1], true);
|
725 |
+
case "each":
|
726 |
+
list(,$each) = $child;
|
727 |
+
$list = $this->coerceList($this->reduce($each->list));
|
728 |
+
foreach ($list[2] as $item) {
|
729 |
+
$this->pushEnv();
|
730 |
+
$this->set($each->var, $item);
|
731 |
+
// TODO: allow return from here
|
732 |
+
$this->compileChildren($each->children, $out);
|
733 |
+
$this->popEnv();
|
734 |
+
}
|
735 |
+
break;
|
736 |
+
case "while":
|
737 |
+
list(,$while) = $child;
|
738 |
+
while ($this->isTruthy($this->reduce($while->cond, true))) {
|
739 |
+
$ret = $this->compileChildren($while->children, $out);
|
740 |
+
if ($ret) return $ret;
|
741 |
+
}
|
742 |
+
break;
|
743 |
+
case "for":
|
744 |
+
list(,$for) = $child;
|
745 |
+
$start = $this->reduce($for->start, true);
|
746 |
+
$start = $start[1];
|
747 |
+
$end = $this->reduce($for->end, true);
|
748 |
+
$end = $end[1];
|
749 |
+
$d = $start < $end ? 1 : -1;
|
750 |
+
|
751 |
+
while (true) {
|
752 |
+
if ((!$for->until && $start - $d == $end) ||
|
753 |
+
($for->until && $start == $end))
|
754 |
+
{
|
755 |
+
break;
|
756 |
+
}
|
757 |
+
|
758 |
+
$this->set($for->var, array("number", $start, ""));
|
759 |
+
$start += $d;
|
760 |
+
|
761 |
+
$ret = $this->compileChildren($for->children, $out);
|
762 |
+
if ($ret) return $ret;
|
763 |
+
}
|
764 |
+
|
765 |
+
break;
|
766 |
+
case "nestedprop":
|
767 |
+
list(,$prop) = $child;
|
768 |
+
$prefixed = array();
|
769 |
+
$prefix = $this->compileValue($prop->prefix) . "-";
|
770 |
+
foreach ($prop->children as $child) {
|
771 |
+
if ($child[0] == "assign") {
|
772 |
+
array_unshift($child[1][2], $prefix);
|
773 |
+
}
|
774 |
+
if ($child[0] == "nestedprop") {
|
775 |
+
array_unshift($child[1]->prefix[2], $prefix);
|
776 |
+
}
|
777 |
+
$prefixed[] = $child;
|
778 |
+
}
|
779 |
+
$this->compileChildren($prefixed, $out);
|
780 |
+
break;
|
781 |
+
case "include": // including a mixin
|
782 |
+
list(,$name, $argValues, $content) = $child;
|
783 |
+
$mixin = $this->get(self::$namespaces["mixin"] . $name, false);
|
784 |
+
if (!$mixin) {
|
785 |
+
$this->throwError("Undefined mixin $name");
|
786 |
+
}
|
787 |
+
|
788 |
+
$callingScope = $this->env;
|
789 |
+
|
790 |
+
// push scope, apply args
|
791 |
+
$this->pushEnv();
|
792 |
+
if ($this->env->depth > 0) {
|
793 |
+
$this->env->depth--;
|
794 |
+
}
|
795 |
+
|
796 |
+
if (isset($content)) {
|
797 |
+
$content->scope = $callingScope;
|
798 |
+
$this->setRaw(self::$namespaces["special"] . "content", $content);
|
799 |
+
}
|
800 |
+
|
801 |
+
if (isset($mixin->args)) {
|
802 |
+
$this->applyArguments($mixin->args, $argValues);
|
803 |
+
}
|
804 |
+
|
805 |
+
foreach ($mixin->children as $child) {
|
806 |
+
$this->compileChild($child, $out);
|
807 |
+
}
|
808 |
+
|
809 |
+
$this->popEnv();
|
810 |
+
|
811 |
+
break;
|
812 |
+
case "mixin_content":
|
813 |
+
$content = $this->get(self::$namespaces["special"] . "content");
|
814 |
+
if (!isset($content)) {
|
815 |
+
$this->throwError("Expected @content inside of mixin");
|
816 |
+
}
|
817 |
+
|
818 |
+
$strongTypes = array('include', 'block', 'for', 'while');
|
819 |
+
foreach ($content->children as $child) {
|
820 |
+
$this->storeEnv = (in_array($child[0], $strongTypes))
|
821 |
+
? null
|
822 |
+
: $content->scope;
|
823 |
+
|
824 |
+
$this->compileChild($child, $out);
|
825 |
+
}
|
826 |
+
|
827 |
+
unset($this->storeEnv);
|
828 |
+
break;
|
829 |
+
case "debug":
|
830 |
+
list(,$value, $pos) = $child;
|
831 |
+
$line = $this->parser->getLineNo($pos);
|
832 |
+
$value = $this->compileValue($this->reduce($value, true));
|
833 |
+
fwrite(STDERR, "Line $line DEBUG: $value\n");
|
834 |
+
break;
|
835 |
+
default:
|
836 |
+
$this->throwError("unknown child type: $child[0]");
|
837 |
+
}
|
838 |
+
}
|
839 |
+
|
840 |
+
protected function expToString($exp) {
|
841 |
+
list(, $op, $left, $right, $inParens, $whiteLeft, $whiteRight) = $exp;
|
842 |
+
$content = array($this->reduce($left));
|
843 |
+
if ($whiteLeft) $content[] = " ";
|
844 |
+
$content[] = $op;
|
845 |
+
if ($whiteRight) $content[] = " ";
|
846 |
+
$content[] = $this->reduce($right);
|
847 |
+
return array("string", "", $content);
|
848 |
+
}
|
849 |
+
|
850 |
+
protected function isTruthy($value) {
|
851 |
+
return $value != self::$false && $value != self::$null;
|
852 |
+
}
|
853 |
+
|
854 |
+
// should $value cause its operand to eval
|
855 |
+
protected function shouldEval($value) {
|
856 |
+
switch ($value[0]) {
|
857 |
+
case "exp":
|
858 |
+
if ($value[1] == "/") {
|
859 |
+
return $this->shouldEval($value[2], $value[3]);
|
860 |
+
}
|
861 |
+
case "var":
|
862 |
+
case "fncall":
|
863 |
+
return true;
|
864 |
+
}
|
865 |
+
return false;
|
866 |
+
}
|
867 |
+
|
868 |
+
protected function reduce($value, $inExp = false) {
|
869 |
+
list($type) = $value;
|
870 |
+
switch ($type) {
|
871 |
+
case "exp":
|
872 |
+
list(, $op, $left, $right, $inParens) = $value;
|
873 |
+
$opName = isset(self::$operatorNames[$op]) ? self::$operatorNames[$op] : $op;
|
874 |
+
|
875 |
+
$inExp = $inExp || $this->shouldEval($left) || $this->shouldEval($right);
|
876 |
+
|
877 |
+
$left = $this->reduce($left, true);
|
878 |
+
$right = $this->reduce($right, true);
|
879 |
+
|
880 |
+
// only do division in special cases
|
881 |
+
if ($opName == "div" && !$inParens && !$inExp) {
|
882 |
+
if ($left[0] != "color" && $right[0] != "color") {
|
883 |
+
return $this->expToString($value);
|
884 |
+
}
|
885 |
+
}
|
886 |
+
|
887 |
+
$left = $this->coerceForExpression($left);
|
888 |
+
$right = $this->coerceForExpression($right);
|
889 |
+
|
890 |
+
$ltype = $left[0];
|
891 |
+
$rtype = $right[0];
|
892 |
+
|
893 |
+
// this tries:
|
894 |
+
// 1. op_[op name]_[left type]_[right type]
|
895 |
+
// 2. op_[left type]_[right type] (passing the op as first arg
|
896 |
+
// 3. op_[op name]
|
897 |
+
$fn = "op_${opName}_${ltype}_${rtype}";
|
898 |
+
if (is_callable(array($this, $fn)) ||
|
899 |
+
(($fn = "op_${ltype}_${rtype}") &&
|
900 |
+
is_callable(array($this, $fn)) &&
|
901 |
+
$passOp = true) ||
|
902 |
+
(($fn = "op_${opName}") &&
|
903 |
+
is_callable(array($this, $fn)) &&
|
904 |
+
$genOp = true))
|
905 |
+
{
|
906 |
+
$unitChange = false;
|
907 |
+
if (!isset($genOp) &&
|
908 |
+
$left[0] == "number" && $right[0] == "number")
|
909 |
+
{
|
910 |
+
if ($opName == "mod" && $right[2] != "") {
|
911 |
+
$this->throwError("Cannot modulo by a number with units: $right[1]$right[2].");
|
912 |
+
}
|
913 |
+
|
914 |
+
$unitChange = true;
|
915 |
+
$emptyUnit = $left[2] == "" || $right[2] == "";
|
916 |
+
$targetUnit = "" != $left[2] ? $left[2] : $right[2];
|
917 |
+
|
918 |
+
if ($opName != "mul") {
|
919 |
+
$left[2] = "" != $left[2] ? $left[2] : $targetUnit;
|
920 |
+
$right[2] = "" != $right[2] ? $right[2] : $targetUnit;
|
921 |
+
}
|
922 |
+
|
923 |
+
if ($opName != "mod") {
|
924 |
+
$left = $this->normalizeNumber($left);
|
925 |
+
$right = $this->normalizeNumber($right);
|
926 |
+
}
|
927 |
+
|
928 |
+
if ($opName == "div" && !$emptyUnit && $left[2] == $right[2]) {
|
929 |
+
$targetUnit = "";
|
930 |
+
}
|
931 |
+
|
932 |
+
if ($opName == "mul") {
|
933 |
+
$left[2] = "" != $left[2] ? $left[2] : $right[2];
|
934 |
+
$right[2] = "" != $right[2] ? $right[2] : $left[2];
|
935 |
+
} elseif ($opName == "div" && $left[2] == $right[2]) {
|
936 |
+
$left[2] = "";
|
937 |
+
$right[2] = "";
|
938 |
+
}
|
939 |
+
}
|
940 |
+
|
941 |
+
$shouldEval = $inParens || $inExp;
|
942 |
+
if (isset($passOp)) {
|
943 |
+
$out = $this->$fn($op, $left, $right, $shouldEval);
|
944 |
+
} else {
|
945 |
+
$out = $this->$fn($left, $right, $shouldEval);
|
946 |
+
}
|
947 |
+
|
948 |
+
if (isset($out)) {
|
949 |
+
if ($unitChange && $out[0] == "number") {
|
950 |
+
$out = $this->coerceUnit($out, $targetUnit);
|
951 |
+
}
|
952 |
+
return $out;
|
953 |
+
}
|
954 |
+
}
|
955 |
+
|
956 |
+
return $this->expToString($value);
|
957 |
+
case "unary":
|
958 |
+
list(, $op, $exp, $inParens) = $value;
|
959 |
+
$inExp = $inExp || $this->shouldEval($exp);
|
960 |
+
|
961 |
+
$exp = $this->reduce($exp);
|
962 |
+
if ($exp[0] == "number") {
|
963 |
+
switch ($op) {
|
964 |
+
case "+":
|
965 |
+
return $exp;
|
966 |
+
case "-":
|
967 |
+
$exp[1] *= -1;
|
968 |
+
return $exp;
|
969 |
+
}
|
970 |
+
}
|
971 |
+
|
972 |
+
if ($op == "not") {
|
973 |
+
if ($inExp || $inParens) {
|
974 |
+
if ($exp == self::$false) {
|
975 |
+
return self::$true;
|
976 |
+
} else {
|
977 |
+
return self::$false;
|
978 |
+
}
|
979 |
+
} else {
|
980 |
+
$op = $op . " ";
|
981 |
+
}
|
982 |
+
}
|
983 |
+
|
984 |
+
return array("string", "", array($op, $exp));
|
985 |
+
case "var":
|
986 |
+
list(, $name) = $value;
|
987 |
+
return $this->reduce($this->get($name));
|
988 |
+
case "list":
|
989 |
+
foreach ($value[2] as &$item) {
|
990 |
+
$item = $this->reduce($item);
|
991 |
+
}
|
992 |
+
return $value;
|
993 |
+
case "string":
|
994 |
+
foreach ($value[2] as &$item) {
|
995 |
+
if (is_array($item)) {
|
996 |
+
$item = $this->reduce($item);
|
997 |
+
}
|
998 |
+
}
|
999 |
+
return $value;
|
1000 |
+
case "interpolate":
|
1001 |
+
$value[1] = $this->reduce($value[1]);
|
1002 |
+
return $value;
|
1003 |
+
case "fncall":
|
1004 |
+
list(,$name, $argValues) = $value;
|
1005 |
+
|
1006 |
+
// user defined function?
|
1007 |
+
$func = $this->get(self::$namespaces["function"] . $name, false);
|
1008 |
+
if ($func) {
|
1009 |
+
$this->pushEnv();
|
1010 |
+
|
1011 |
+
// set the args
|
1012 |
+
if (isset($func->args)) {
|
1013 |
+
$this->applyArguments($func->args, $argValues);
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
// throw away lines and children
|
1017 |
+
$tmp = (object)array(
|
1018 |
+
"lines" => array(),
|
1019 |
+
"children" => array()
|
1020 |
+
);
|
1021 |
+
$ret = $this->compileChildren($func->children, $tmp);
|
1022 |
+
$this->popEnv();
|
1023 |
+
|
1024 |
+
return !isset($ret) ? self::$defaultValue : $ret;
|
1025 |
+
}
|
1026 |
+
|
1027 |
+
// built in function
|
1028 |
+
if ($this->callBuiltin($name, $argValues, $returnValue)) {
|
1029 |
+
return $returnValue;
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
// need to flatten the arguments into a list
|
1033 |
+
$listArgs = array();
|
1034 |
+
foreach ((array)$argValues as $arg) {
|
1035 |
+
if (empty($arg[0])) {
|
1036 |
+
$listArgs[] = $this->reduce($arg[1]);
|
1037 |
+
}
|
1038 |
+
}
|
1039 |
+
return array("function", $name, array("list", ",", $listArgs));
|
1040 |
+
default:
|
1041 |
+
return $value;
|
1042 |
+
}
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
public function normalizeValue($value) {
|
1046 |
+
$value = $this->coerceForExpression($this->reduce($value));
|
1047 |
+
list($type) = $value;
|
1048 |
+
|
1049 |
+
switch ($type) {
|
1050 |
+
case "list":
|
1051 |
+
$value = $this->extractInterpolation($value);
|
1052 |
+
if ($value[0] != "list") {
|
1053 |
+
return array("keyword", $this->compileValue($value));
|
1054 |
+
}
|
1055 |
+
foreach ($value[2] as $key => $item) {
|
1056 |
+
$value[2][$key] = $this->normalizeValue($item);
|
1057 |
+
}
|
1058 |
+
return $value;
|
1059 |
+
case "number":
|
1060 |
+
return $this->normalizeNumber($value);
|
1061 |
+
default:
|
1062 |
+
return $value;
|
1063 |
+
}
|
1064 |
+
}
|
1065 |
+
|
1066 |
+
// just does physical lengths for now
|
1067 |
+
protected function normalizeNumber($number) {
|
1068 |
+
list(, $value, $unit) = $number;
|
1069 |
+
if (isset(self::$unitTable["in"][$unit])) {
|
1070 |
+
$conv = self::$unitTable["in"][$unit];
|
1071 |
+
return array("number", $value / $conv, "in");
|
1072 |
+
}
|
1073 |
+
return $number;
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
// $number should be normalized
|
1077 |
+
protected function coerceUnit($number, $unit) {
|
1078 |
+
list(, $value, $baseUnit) = $number;
|
1079 |
+
if (isset(self::$unitTable[$baseUnit][$unit])) {
|
1080 |
+
$value = $value * self::$unitTable[$baseUnit][$unit];
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
return array("number", $value, $unit);
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
protected function op_add_number_number($left, $right) {
|
1087 |
+
return array("number", $left[1] + $right[1], $left[2]);
|
1088 |
+
}
|
1089 |
+
|
1090 |
+
protected function op_mul_number_number($left, $right) {
|
1091 |
+
return array("number", $left[1] * $right[1], $left[2]);
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
protected function op_sub_number_number($left, $right) {
|
1095 |
+
return array("number", $left[1] - $right[1], $left[2]);
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
protected function op_div_number_number($left, $right) {
|
1099 |
+
return array("number", $left[1] / $right[1], $left[2]);
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
protected function op_mod_number_number($left, $right) {
|
1103 |
+
return array("number", $left[1] % $right[1], $left[2]);
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
// adding strings
|
1107 |
+
protected function op_add($left, $right) {
|
1108 |
+
if ($strLeft = $this->coerceString($left)) {
|
1109 |
+
if ($right[0] == "string") {
|
1110 |
+
$right[1] = "";
|
1111 |
+
}
|
1112 |
+
$strLeft[2][] = $right;
|
1113 |
+
return $strLeft;
|
1114 |
+
}
|
1115 |
+
|
1116 |
+
if ($strRight = $this->coerceString($right)) {
|
1117 |
+
if ($left[0] == "string") {
|
1118 |
+
$left[1] = "";
|
1119 |
+
}
|
1120 |
+
array_unshift($strRight[2], $left);
|
1121 |
+
return $strRight;
|
1122 |
+
}
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
protected function op_and($left, $right, $shouldEval) {
|
1126 |
+
if (!$shouldEval) return;
|
1127 |
+
if ($left != self::$false) return $right;
|
1128 |
+
return $left;
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
protected function op_or($left, $right, $shouldEval) {
|
1132 |
+
if (!$shouldEval) return;
|
1133 |
+
if ($left != self::$false) return $left;
|
1134 |
+
return $right;
|
1135 |
+
}
|
1136 |
+
|
1137 |
+
protected function op_color_color($op, $left, $right) {
|
1138 |
+
$out = array('color');
|
1139 |
+
foreach (range(1, 3) as $i) {
|
1140 |
+
$lval = isset($left[$i]) ? $left[$i] : 0;
|
1141 |
+
$rval = isset($right[$i]) ? $right[$i] : 0;
|
1142 |
+
switch ($op) {
|
1143 |
+
case '+':
|
1144 |
+
$out[] = $lval + $rval;
|
1145 |
+
break;
|
1146 |
+
case '-':
|
1147 |
+
$out[] = $lval - $rval;
|
1148 |
+
break;
|
1149 |
+
case '*':
|
1150 |
+
$out[] = $lval * $rval;
|
1151 |
+
break;
|
1152 |
+
case '%':
|
1153 |
+
$out[] = $lval % $rval;
|
1154 |
+
break;
|
1155 |
+
case '/':
|
1156 |
+
if ($rval == 0) {
|
1157 |
+
$this->throwError("color: Can't divide by zero");
|
1158 |
+
}
|
1159 |
+
$out[] = $lval / $rval;
|
1160 |
+
break;
|
1161 |
+
case "==":
|
1162 |
+
return $this->op_eq($left, $right);
|
1163 |
+
case "!=":
|
1164 |
+
return $this->op_neq($left, $right);
|
1165 |
+
default:
|
1166 |
+
$this->throwError("color: unknown op $op");
|
1167 |
+
}
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
if (isset($left[4])) $out[4] = $left[4];
|
1171 |
+
elseif (isset($right[4])) $out[4] = $right[4];
|
1172 |
+
|
1173 |
+
return $this->fixColor($out);
|
1174 |
+
}
|
1175 |
+
|
1176 |
+
protected function op_color_number($op, $left, $right) {
|
1177 |
+
$value = $right[1];
|
1178 |
+
return $this->op_color_color($op, $left,
|
1179 |
+
array("color", $value, $value, $value));
|
1180 |
+
}
|
1181 |
+
|
1182 |
+
protected function op_number_color($op, $left, $right) {
|
1183 |
+
$value = $left[1];
|
1184 |
+
return $this->op_color_color($op,
|
1185 |
+
array("color", $value, $value, $value), $right);
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
protected function op_eq($left, $right) {
|
1189 |
+
if (($lStr = $this->coerceString($left)) && ($rStr = $this->coerceString($right))) {
|
1190 |
+
$lStr[1] = "";
|
1191 |
+
$rStr[1] = "";
|
1192 |
+
return $this->toBool($this->compileValue($lStr) == $this->compileValue($rStr));
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
return $this->toBool($left == $right);
|
1196 |
+
}
|
1197 |
+
|
1198 |
+
protected function op_neq($left, $right) {
|
1199 |
+
return $this->toBool($left != $right);
|
1200 |
+
}
|
1201 |
+
|
1202 |
+
protected function op_gte_number_number($left, $right) {
|
1203 |
+
return $this->toBool($left[1] >= $right[1]);
|
1204 |
+
}
|
1205 |
+
|
1206 |
+
protected function op_gt_number_number($left, $right) {
|
1207 |
+
return $this->toBool($left[1] > $right[1]);
|
1208 |
+
}
|
1209 |
+
|
1210 |
+
protected function op_lte_number_number($left, $right) {
|
1211 |
+
return $this->toBool($left[1] <= $right[1]);
|
1212 |
+
}
|
1213 |
+
|
1214 |
+
protected function op_lt_number_number($left, $right) {
|
1215 |
+
return $this->toBool($left[1] < $right[1]);
|
1216 |
+
}
|
1217 |
+
|
1218 |
+
public function toBool($thing) {
|
1219 |
+
return $thing ? self::$true : self::$false;
|
1220 |
+
}
|
1221 |
+
|
1222 |
+
/**
|
1223 |
+
* Compiles a primitive value into a CSS property value.
|
1224 |
+
*
|
1225 |
+
* Values in scssphp are typed by being wrapped in arrays, their format is
|
1226 |
+
* typically:
|
1227 |
+
*
|
1228 |
+
* array(type, contents [, additional_contents]*)
|
1229 |
+
*
|
1230 |
+
* The input is expected to be reduced. This function will not work on
|
1231 |
+
* things like expressions and variables.
|
1232 |
+
*
|
1233 |
+
* @param array $value
|
1234 |
+
*/
|
1235 |
+
protected function compileValue($value) {
|
1236 |
+
$value = $this->reduce($value);
|
1237 |
+
|
1238 |
+
list($type) = $value;
|
1239 |
+
switch ($type) {
|
1240 |
+
case "keyword":
|
1241 |
+
return $value[1];
|
1242 |
+
case "color":
|
1243 |
+
// [1] - red component (either number for a %)
|
1244 |
+
// [2] - green component
|
1245 |
+
// [3] - blue component
|
1246 |
+
// [4] - optional alpha component
|
1247 |
+
list(, $r, $g, $b) = $value;
|
1248 |
+
|
1249 |
+
$r = round($r);
|
1250 |
+
$g = round($g);
|
1251 |
+
$b = round($b);
|
1252 |
+
|
1253 |
+
if (count($value) == 5 && $value[4] != 1) { // rgba
|
1254 |
+
return 'rgba('.$r.', '.$g.', '.$b.', '.$value[4].')';
|
1255 |
+
}
|
1256 |
+
|
1257 |
+
$h = sprintf("#%02x%02x%02x", $r, $g, $b);
|
1258 |
+
|
1259 |
+
// Converting hex color to short notation (e.g. #003399 to #039)
|
1260 |
+
if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) {
|
1261 |
+
$h = '#' . $h[1] . $h[3] . $h[5];
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
return $h;
|
1265 |
+
case "number":
|
1266 |
+
return round($value[1], $this->numberPrecision) . $value[2];
|
1267 |
+
case "string":
|
1268 |
+
return $value[1] . $this->compileStringContent($value) . $value[1];
|
1269 |
+
case "function":
|
1270 |
+
$args = !empty($value[2]) ? $this->compileValue($value[2]) : "";
|
1271 |
+
return "$value[1]($args)";
|
1272 |
+
case "list":
|
1273 |
+
$value = $this->extractInterpolation($value);
|
1274 |
+
if ($value[0] != "list") return $this->compileValue($value);
|
1275 |
+
|
1276 |
+
list(, $delim, $items) = $value;
|
1277 |
+
|
1278 |
+
$filtered = array();
|
1279 |
+
foreach ($items as $item) {
|
1280 |
+
if ($item[0] == "null") continue;
|
1281 |
+
$filtered[] = $this->compileValue($item);
|
1282 |
+
}
|
1283 |
+
|
1284 |
+
return implode("$delim ", $filtered);
|
1285 |
+
case "interpolated": # node created by extractInterpolation
|
1286 |
+
list(, $interpolate, $left, $right) = $value;
|
1287 |
+
list(,, $whiteLeft, $whiteRight) = $interpolate;
|
1288 |
+
|
1289 |
+
$left = count($left[2]) > 0 ?
|
1290 |
+
$this->compileValue($left).$whiteLeft : "";
|
1291 |
+
|
1292 |
+
$right = count($right[2]) > 0 ?
|
1293 |
+
$whiteRight.$this->compileValue($right) : "";
|
1294 |
+
|
1295 |
+
return $left.$this->compileValue($interpolate).$right;
|
1296 |
+
|
1297 |
+
case "interpolate": # raw parse node
|
1298 |
+
list(, $exp) = $value;
|
1299 |
+
|
1300 |
+
// strip quotes if it's a string
|
1301 |
+
$reduced = $this->reduce($exp);
|
1302 |
+
switch ($reduced[0]) {
|
1303 |
+
case "string":
|
1304 |
+
$reduced = array("keyword",
|
1305 |
+
$this->compileStringContent($reduced));
|
1306 |
+
break;
|
1307 |
+
case "null":
|
1308 |
+
$reduced = array("keyword", "");
|
1309 |
+
}
|
1310 |
+
|
1311 |
+
return $this->compileValue($reduced);
|
1312 |
+
case "null":
|
1313 |
+
return "null";
|
1314 |
+
default:
|
1315 |
+
$this->throwError("unknown value type: $type");
|
1316 |
+
}
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
protected function compileStringContent($string) {
|
1320 |
+
$parts = array();
|
1321 |
+
foreach ($string[2] as $part) {
|
1322 |
+
if (is_array($part)) {
|
1323 |
+
$parts[] = $this->compileValue($part);
|
1324 |
+
} else {
|
1325 |
+
$parts[] = $part;
|
1326 |
+
}
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
return implode($parts);
|
1330 |
+
}
|
1331 |
+
|
1332 |
+
// doesn't need to be recursive, compileValue will handle that
|
1333 |
+
protected function extractInterpolation($list) {
|
1334 |
+
$items = $list[2];
|
1335 |
+
foreach ($items as $i => $item) {
|
1336 |
+
if ($item[0] == "interpolate") {
|
1337 |
+
$before = array("list", $list[1], array_slice($items, 0, $i));
|
1338 |
+
$after = array("list", $list[1], array_slice($items, $i + 1));
|
1339 |
+
return array("interpolated", $item, $before, $after);
|
1340 |
+
}
|
1341 |
+
}
|
1342 |
+
return $list;
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
// find the final set of selectors
|
1346 |
+
protected function multiplySelectors($env) {
|
1347 |
+
$envs = array();
|
1348 |
+
while (null !== $env) {
|
1349 |
+
if (!empty($env->selectors)) {
|
1350 |
+
$envs[] = $env;
|
1351 |
+
}
|
1352 |
+
$env = $env->parent;
|
1353 |
+
};
|
1354 |
+
|
1355 |
+
$selectors = array();
|
1356 |
+
$parentSelectors = array(array());
|
1357 |
+
while ($env = array_pop($envs)) {
|
1358 |
+
$selectors = array();
|
1359 |
+
foreach ($env->selectors as $selector) {
|
1360 |
+
foreach ($parentSelectors as $parent) {
|
1361 |
+
$selectors[] = $this->joinSelectors($parent, $selector);
|
1362 |
+
}
|
1363 |
+
}
|
1364 |
+
$parentSelectors = $selectors;
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
return $selectors;
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
// looks for & to replace, or append parent before child
|
1371 |
+
protected function joinSelectors($parent, $child) {
|
1372 |
+
$setSelf = false;
|
1373 |
+
$out = array();
|
1374 |
+
foreach ($child as $part) {
|
1375 |
+
$newPart = array();
|
1376 |
+
foreach ($part as $p) {
|
1377 |
+
if ($p == self::$selfSelector) {
|
1378 |
+
$setSelf = true;
|
1379 |
+
foreach ($parent as $i => $parentPart) {
|
1380 |
+
if ($i > 0) {
|
1381 |
+
$out[] = $newPart;
|
1382 |
+
$newPart = array();
|
1383 |
+
}
|
1384 |
+
|
1385 |
+
foreach ($parentPart as $pp) {
|
1386 |
+
$newPart[] = $pp;
|
1387 |
+
}
|
1388 |
+
}
|
1389 |
+
} else {
|
1390 |
+
$newPart[] = $p;
|
1391 |
+
}
|
1392 |
+
}
|
1393 |
+
|
1394 |
+
$out[] = $newPart;
|
1395 |
+
}
|
1396 |
+
|
1397 |
+
return $setSelf ? $out : array_merge($parent, $child);
|
1398 |
+
}
|
1399 |
+
|
1400 |
+
protected function multiplyMedia($env, $childQueries = null) {
|
1401 |
+
if (!isset($env) ||
|
1402 |
+
!empty($env->block->type) && $env->block->type != "media")
|
1403 |
+
{
|
1404 |
+
return $childQueries;
|
1405 |
+
}
|
1406 |
+
|
1407 |
+
// plain old block, skip
|
1408 |
+
if (empty($env->block->type)) {
|
1409 |
+
return $this->multiplyMedia($env->parent, $childQueries);
|
1410 |
+
}
|
1411 |
+
|
1412 |
+
$parentQueries = $env->block->queryList;
|
1413 |
+
if ($childQueries == null) {
|
1414 |
+
$childQueries = $parentQueries;
|
1415 |
+
} else {
|
1416 |
+
$originalQueries = $childQueries;
|
1417 |
+
$childQueries = array();
|
1418 |
+
|
1419 |
+
foreach ($parentQueries as $parentQuery){
|
1420 |
+
foreach ($originalQueries as $childQuery) {
|
1421 |
+
$childQueries []= array_merge($parentQuery, $childQuery);
|
1422 |
+
}
|
1423 |
+
}
|
1424 |
+
}
|
1425 |
+
|
1426 |
+
return $this->multiplyMedia($env->parent, $childQueries);
|
1427 |
+
}
|
1428 |
+
|
1429 |
+
// convert something to list
|
1430 |
+
protected function coerceList($item, $delim = ",") {
|
1431 |
+
if (isset($item) && $item[0] == "list") {
|
1432 |
+
return $item;
|
1433 |
+
}
|
1434 |
+
|
1435 |
+
return array("list", $delim, !isset($item) ? array(): array($item));
|
1436 |
+
}
|
1437 |
+
|
1438 |
+
protected function applyArguments($argDef, $argValues) {
|
1439 |
+
$hasVariable = false;
|
1440 |
+
$args = array();
|
1441 |
+
foreach ($argDef as $i => $arg) {
|
1442 |
+
list($name, $default, $isVariable) = $argDef[$i];
|
1443 |
+
$args[$name] = array($i, $name, $default, $isVariable);
|
1444 |
+
$hasVariable |= $isVariable;
|
1445 |
+
}
|
1446 |
+
|
1447 |
+
$keywordArgs = array();
|
1448 |
+
$deferredKeywordArgs = array();
|
1449 |
+
$remaining = array();
|
1450 |
+
// assign the keyword args
|
1451 |
+
foreach ((array) $argValues as $arg) {
|
1452 |
+
if (!empty($arg[0])) {
|
1453 |
+
if (!isset($args[$arg[0][1]])) {
|
1454 |
+
if ($hasVariable) {
|
1455 |
+
$deferredKeywordArgs[$arg[0][1]] = $arg[1];
|
1456 |
+
} else {
|
1457 |
+
$this->throwError("Mixin or function doesn't have an argument named $%s.", $arg[0][1]);
|
1458 |
+
}
|
1459 |
+
} elseif ($args[$arg[0][1]][0] < count($remaining)) {
|
1460 |
+
$this->throwError("The argument $%s was passed both by position and by name.", $arg[0][1]);
|
1461 |
+
} else {
|
1462 |
+
$keywordArgs[$arg[0][1]] = $arg[1];
|
1463 |
+
}
|
1464 |
+
} elseif (count($keywordArgs)) {
|
1465 |
+
$this->throwError('Positional arguments must come before keyword arguments.');
|
1466 |
+
} elseif ($arg[2] == true) {
|
1467 |
+
$val = $this->reduce($arg[1], true);
|
1468 |
+
if ($val[0] == "list") {
|
1469 |
+
foreach ($val[2] as $name => $item) {
|
1470 |
+
if (!is_numeric($name)) {
|
1471 |
+
$keywordArgs[$name] = $item;
|
1472 |
+
} else {
|
1473 |
+
$remaining[] = $item;
|
1474 |
+
}
|
1475 |
+
}
|
1476 |
+
} else {
|
1477 |
+
$remaining[] = $val;
|
1478 |
+
}
|
1479 |
+
} else {
|
1480 |
+
$remaining[] = $arg[1];
|
1481 |
+
}
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
foreach ($args as $arg) {
|
1485 |
+
list($i, $name, $default, $isVariable) = $arg;
|
1486 |
+
if ($isVariable) {
|
1487 |
+
$val = array("list", ",", array());
|
1488 |
+
for ($count = count($remaining); $i < $count; $i++) {
|
1489 |
+
$val[2][] = $remaining[$i];
|
1490 |
+
}
|
1491 |
+
foreach ($deferredKeywordArgs as $itemName => $item) {
|
1492 |
+
$val[2][$itemName] = $item;
|
1493 |
+
}
|
1494 |
+
} elseif (isset($remaining[$i])) {
|
1495 |
+
$val = $remaining[$i];
|
1496 |
+
} elseif (isset($keywordArgs[$name])) {
|
1497 |
+
$val = $keywordArgs[$name];
|
1498 |
+
} elseif (!empty($default)) {
|
1499 |
+
$val = $default;
|
1500 |
+
} else {
|
1501 |
+
$this->throwError("Missing argument $name");
|
1502 |
+
}
|
1503 |
+
|
1504 |
+
$this->set($name, $this->reduce($val, true), true);
|
1505 |
+
}
|
1506 |
+
}
|
1507 |
+
|
1508 |
+
protected function pushEnv($block=null) {
|
1509 |
+
$env = new stdClass;
|
1510 |
+
$env->parent = $this->env;
|
1511 |
+
$env->store = array();
|
1512 |
+
$env->block = $block;
|
1513 |
+
$env->depth = isset($this->env->depth) ? $this->env->depth + 1 : 0;
|
1514 |
+
|
1515 |
+
$this->env = $env;
|
1516 |
+
return $env;
|
1517 |
+
}
|
1518 |
+
|
1519 |
+
protected function normalizeName($name) {
|
1520 |
+
return str_replace("-", "_", $name);
|
1521 |
+
}
|
1522 |
+
|
1523 |
+
protected function getStoreEnv() {
|
1524 |
+
return isset($this->storeEnv) ? $this->storeEnv : $this->env;
|
1525 |
+
}
|
1526 |
+
|
1527 |
+
protected function set($name, $value, $shadow=false) {
|
1528 |
+
$name = $this->normalizeName($name);
|
1529 |
+
|
1530 |
+
if ($shadow) {
|
1531 |
+
$this->setRaw($name, $value);
|
1532 |
+
} else {
|
1533 |
+
$this->setExisting($name, $value);
|
1534 |
+
}
|
1535 |
+
}
|
1536 |
+
|
1537 |
+
protected function setExisting($name, $value, $env = null) {
|
1538 |
+
if (!isset($env)) $env = $this->getStoreEnv();
|
1539 |
+
|
1540 |
+
if (isset($env->store[$name]) || !isset($env->parent)) {
|
1541 |
+
$env->store[$name] = $value;
|
1542 |
+
} else {
|
1543 |
+
$this->setExisting($name, $value, $env->parent);
|
1544 |
+
}
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
protected function setRaw($name, $value) {
|
1548 |
+
$env = $this->getStoreEnv();
|
1549 |
+
$env->store[$name] = $value;
|
1550 |
+
}
|
1551 |
+
|
1552 |
+
public function get($name, $defaultValue = null, $env = null) {
|
1553 |
+
$name = $this->normalizeName($name);
|
1554 |
+
|
1555 |
+
if (!isset($env)) $env = $this->getStoreEnv();
|
1556 |
+
if (!isset($defaultValue)) $defaultValue = self::$defaultValue;
|
1557 |
+
|
1558 |
+
if (isset($env->store[$name])) {
|
1559 |
+
return $env->store[$name];
|
1560 |
+
} elseif (isset($env->parent)) {
|
1561 |
+
return $this->get($name, $defaultValue, $env->parent);
|
1562 |
+
}
|
1563 |
+
|
1564 |
+
return $defaultValue; // found nothing
|
1565 |
+
}
|
1566 |
+
|
1567 |
+
protected function injectVariables(array $args)
|
1568 |
+
{
|
1569 |
+
if (empty($args)) {
|
1570 |
+
return;
|
1571 |
+
}
|
1572 |
+
|
1573 |
+
$parser = new scss_parser_free(__METHOD__, false);
|
1574 |
+
|
1575 |
+
foreach ($args as $name => $strValue) {
|
1576 |
+
if ($name[0] === '$') {
|
1577 |
+
$name = substr($name, 1);
|
1578 |
+
}
|
1579 |
+
|
1580 |
+
$parser->env = null;
|
1581 |
+
$parser->count = 0;
|
1582 |
+
$parser->buffer = (string) $strValue;
|
1583 |
+
$parser->inParens = false;
|
1584 |
+
$parser->eatWhiteDefault = true;
|
1585 |
+
$parser->insertComments = true;
|
1586 |
+
|
1587 |
+
if ( ! $parser->valueList($value)) {
|
1588 |
+
throw new Exception("failed to parse passed in variable $name: $strValue");
|
1589 |
+
}
|
1590 |
+
|
1591 |
+
$this->set($name, $value);
|
1592 |
+
}
|
1593 |
+
}
|
1594 |
+
|
1595 |
+
/**
|
1596 |
+
* Set variables
|
1597 |
+
*
|
1598 |
+
* @param array $variables
|
1599 |
+
*/
|
1600 |
+
public function setVariables(array $variables)
|
1601 |
+
{
|
1602 |
+
$this->registeredVars = array_merge($this->registeredVars, $variables);
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
/**
|
1606 |
+
* Unset variable
|
1607 |
+
*
|
1608 |
+
* @param string $name
|
1609 |
+
*/
|
1610 |
+
public function unsetVariable($name)
|
1611 |
+
{
|
1612 |
+
unset($this->registeredVars[$name]);
|
1613 |
+
}
|
1614 |
+
|
1615 |
+
protected function popEnv() {
|
1616 |
+
$env = $this->env;
|
1617 |
+
$this->env = $this->env->parent;
|
1618 |
+
return $env;
|
1619 |
+
}
|
1620 |
+
|
1621 |
+
public function getParsedFiles() {
|
1622 |
+
return $this->parsedFiles;
|
1623 |
+
}
|
1624 |
+
|
1625 |
+
public function addImportPath($path) {
|
1626 |
+
$this->importPaths[] = $path;
|
1627 |
+
}
|
1628 |
+
|
1629 |
+
public function setImportPaths($path) {
|
1630 |
+
$this->importPaths = (array)$path;
|
1631 |
+
}
|
1632 |
+
|
1633 |
+
public function setNumberPrecision($numberPrecision) {
|
1634 |
+
$this->numberPrecision = $numberPrecision;
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
public function setFormatter($formatterName) {
|
1638 |
+
$this->formatter = $formatterName;
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
public function registerFunction($name, $func) {
|
1642 |
+
$this->userFunctions[$this->normalizeName($name)] = $func;
|
1643 |
+
}
|
1644 |
+
|
1645 |
+
public function unregisterFunction($name) {
|
1646 |
+
unset($this->userFunctions[$this->normalizeName($name)]);
|
1647 |
+
}
|
1648 |
+
|
1649 |
+
protected function importFile($path, $out) {
|
1650 |
+
// see if tree is cached
|
1651 |
+
$realPath = realpath($path);
|
1652 |
+
if (isset($this->importCache[$realPath])) {
|
1653 |
+
$tree = $this->importCache[$realPath];
|
1654 |
+
} else {
|
1655 |
+
$code = file_get_contents($path);
|
1656 |
+
$parser = new scss_parser_free($path, false);
|
1657 |
+
$tree = $parser->parse($code);
|
1658 |
+
$this->parsedFiles[] = $path;
|
1659 |
+
|
1660 |
+
$this->importCache[$realPath] = $tree;
|
1661 |
+
}
|
1662 |
+
|
1663 |
+
$pi = pathinfo($path);
|
1664 |
+
array_unshift($this->importPaths, $pi['dirname']);
|
1665 |
+
$this->compileChildren($tree->children, $out);
|
1666 |
+
array_shift($this->importPaths);
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
// results the file path for an import url if it exists
|
1670 |
+
public function findImport($url) {
|
1671 |
+
$urls = array();
|
1672 |
+
|
1673 |
+
// for "normal" scss imports (ignore vanilla css and external requests)
|
1674 |
+
if (!preg_match('/\.css|^http:\/\/$/', $url)) {
|
1675 |
+
// try both normal and the _partial filename
|
1676 |
+
$urls = array($url, preg_replace('/[^\/]+$/', '_\0', $url));
|
1677 |
+
}
|
1678 |
+
|
1679 |
+
foreach ($this->importPaths as $dir) {
|
1680 |
+
if (is_string($dir)) {
|
1681 |
+
// check urls for normal import paths
|
1682 |
+
foreach ($urls as $full) {
|
1683 |
+
$full = $dir .
|
1684 |
+
(!empty($dir) && substr($dir, -1) != '/' ? '/' : '') .
|
1685 |
+
$full;
|
1686 |
+
|
1687 |
+
if ($this->fileExists($file = $full.'.scss') ||
|
1688 |
+
$this->fileExists($file = $full))
|
1689 |
+
{
|
1690 |
+
return $file;
|
1691 |
+
}
|
1692 |
+
}
|
1693 |
+
} else {
|
1694 |
+
// check custom callback for import path
|
1695 |
+
$file = call_user_func($dir,$url,$this);
|
1696 |
+
if ($file !== null) {
|
1697 |
+
return $file;
|
1698 |
+
}
|
1699 |
+
}
|
1700 |
+
}
|
1701 |
+
|
1702 |
+
return null;
|
1703 |
+
}
|
1704 |
+
|
1705 |
+
protected function fileExists($name) {
|
1706 |
+
return is_file($name);
|
1707 |
+
}
|
1708 |
+
|
1709 |
+
protected function callBuiltin($name, $args, &$returnValue) {
|
1710 |
+
// try a lib function
|
1711 |
+
$name = $this->normalizeName($name);
|
1712 |
+
$libName = "lib_".$name;
|
1713 |
+
$f = array($this, $libName);
|
1714 |
+
if (is_callable($f)) {
|
1715 |
+
$prototype = isset(self::$$libName) ? self::$$libName : null;
|
1716 |
+
$sorted = $this->sortArgs($prototype, $args);
|
1717 |
+
foreach ($sorted as &$val) {
|
1718 |
+
$val = $this->reduce($val, true);
|
1719 |
+
}
|
1720 |
+
$returnValue = call_user_func($f, $sorted, $this);
|
1721 |
+
} elseif (isset($this->userFunctions[$name])) {
|
1722 |
+
// see if we can find a user function
|
1723 |
+
$fn = $this->userFunctions[$name];
|
1724 |
+
|
1725 |
+
foreach ($args as &$val) {
|
1726 |
+
$val = $this->reduce($val[1], true);
|
1727 |
+
}
|
1728 |
+
|
1729 |
+
$returnValue = call_user_func($fn, $args, $this);
|
1730 |
+
}
|
1731 |
+
|
1732 |
+
if (isset($returnValue)) {
|
1733 |
+
// coerce a php value into a scss one
|
1734 |
+
if (is_numeric($returnValue)) {
|
1735 |
+
$returnValue = array('number', $returnValue, "");
|
1736 |
+
} elseif (is_bool($returnValue)) {
|
1737 |
+
$returnValue = $returnValue ? self::$true : self::$false;
|
1738 |
+
} elseif (!is_array($returnValue)) {
|
1739 |
+
$returnValue = array('keyword', $returnValue);
|
1740 |
+
}
|
1741 |
+
|
1742 |
+
return true;
|
1743 |
+
}
|
1744 |
+
|
1745 |
+
return false;
|
1746 |
+
}
|
1747 |
+
|
1748 |
+
// sorts any keyword arguments
|
1749 |
+
// TODO: merge with apply arguments
|
1750 |
+
protected function sortArgs($prototype, $args) {
|
1751 |
+
$keyArgs = array();
|
1752 |
+
$posArgs = array();
|
1753 |
+
|
1754 |
+
foreach ($args as $arg) {
|
1755 |
+
list($key, $value) = $arg;
|
1756 |
+
$key = $key[1];
|
1757 |
+
if (empty($key)) {
|
1758 |
+
$posArgs[] = $value;
|
1759 |
+
} else {
|
1760 |
+
$keyArgs[$key] = $value;
|
1761 |
+
}
|
1762 |
+
}
|
1763 |
+
|
1764 |
+
if (!isset($prototype)) return $posArgs;
|
1765 |
+
|
1766 |
+
$finalArgs = array();
|
1767 |
+
foreach ($prototype as $i => $names) {
|
1768 |
+
if (isset($posArgs[$i])) {
|
1769 |
+
$finalArgs[] = $posArgs[$i];
|
1770 |
+
continue;
|
1771 |
+
}
|
1772 |
+
|
1773 |
+
$set = false;
|
1774 |
+
foreach ((array)$names as $name) {
|
1775 |
+
if (isset($keyArgs[$name])) {
|
1776 |
+
$finalArgs[] = $keyArgs[$name];
|
1777 |
+
$set = true;
|
1778 |
+
break;
|
1779 |
+
}
|
1780 |
+
}
|
1781 |
+
|
1782 |
+
if (!$set) {
|
1783 |
+
$finalArgs[] = null;
|
1784 |
+
}
|
1785 |
+
}
|
1786 |
+
|
1787 |
+
return $finalArgs;
|
1788 |
+
}
|
1789 |
+
|
1790 |
+
protected function coerceForExpression($value) {
|
1791 |
+
if ($color = $this->coerceColor($value)) {
|
1792 |
+
return $color;
|
1793 |
+
}
|
1794 |
+
|
1795 |
+
return $value;
|
1796 |
+
}
|
1797 |
+
|
1798 |
+
protected function coerceColor($value) {
|
1799 |
+
switch ($value[0]) {
|
1800 |
+
case "color": return $value;
|
1801 |
+
case "keyword":
|
1802 |
+
$name = $value[1];
|
1803 |
+
if (isset(self::$cssColors[$name])) {
|
1804 |
+
$rgba = explode(',', self::$cssColors[$name]);
|
1805 |
+
return isset($rgba[3])
|
1806 |
+
? array('color', (int) $rgba[0], (int) $rgba[1], (int) $rgba[2], (int) $rgba[3])
|
1807 |
+
: array('color', (int) $rgba[0], (int) $rgba[1], (int) $rgba[2]);
|
1808 |
+
}
|
1809 |
+
return null;
|
1810 |
+
}
|
1811 |
+
|
1812 |
+
return null;
|
1813 |
+
}
|
1814 |
+
|
1815 |
+
protected function coerceString($value) {
|
1816 |
+
switch ($value[0]) {
|
1817 |
+
case "string":
|
1818 |
+
return $value;
|
1819 |
+
case "keyword":
|
1820 |
+
return array("string", "", array($value[1]));
|
1821 |
+
}
|
1822 |
+
return null;
|
1823 |
+
}
|
1824 |
+
|
1825 |
+
public function assertList($value) {
|
1826 |
+
if ($value[0] != "list")
|
1827 |
+
$this->throwError("expecting list");
|
1828 |
+
return $value;
|
1829 |
+
}
|
1830 |
+
|
1831 |
+
public function assertColor($value) {
|
1832 |
+
if ($color = $this->coerceColor($value)) return $color;
|
1833 |
+
$this->throwError("expecting color");
|
1834 |
+
}
|
1835 |
+
|
1836 |
+
public function assertNumber($value) {
|
1837 |
+
if ($value[0] != "number")
|
1838 |
+
$this->throwError("expecting number");
|
1839 |
+
return $value[1];
|
1840 |
+
}
|
1841 |
+
|
1842 |
+
protected function coercePercent($value) {
|
1843 |
+
if ($value[0] == "number") {
|
1844 |
+
if ($value[2] == "%") {
|
1845 |
+
return $value[1] / 100;
|
1846 |
+
}
|
1847 |
+
return $value[1];
|
1848 |
+
}
|
1849 |
+
return 0;
|
1850 |
+
}
|
1851 |
+
|
1852 |
+
// make sure a color's components don't go out of bounds
|
1853 |
+
protected function fixColor($c) {
|
1854 |
+
foreach (range(1, 3) as $i) {
|
1855 |
+
if ($c[$i] < 0) $c[$i] = 0;
|
1856 |
+
if ($c[$i] > 255) $c[$i] = 255;
|
1857 |
+
}
|
1858 |
+
|
1859 |
+
return $c;
|
1860 |
+
}
|
1861 |
+
|
1862 |
+
public function toHSL($red, $green, $blue) {
|
1863 |
+
$min = min($red, $green, $blue);
|
1864 |
+
$max = max($red, $green, $blue);
|
1865 |
+
|
1866 |
+
$l = $min + $max;
|
1867 |
+
|
1868 |
+
if ($min == $max) {
|
1869 |
+
$s = $h = 0;
|
1870 |
+
} else {
|
1871 |
+
$d = $max - $min;
|
1872 |
+
|
1873 |
+
if ($l < 255)
|
1874 |
+
$s = $d / $l;
|
1875 |
+
else
|
1876 |
+
$s = $d / (510 - $l);
|
1877 |
+
|
1878 |
+
if ($red == $max)
|
1879 |
+
$h = 60 * ($green - $blue) / $d;
|
1880 |
+
elseif ($green == $max)
|
1881 |
+
$h = 60 * ($blue - $red) / $d + 120;
|
1882 |
+
elseif ($blue == $max)
|
1883 |
+
$h = 60 * ($red - $green) / $d + 240;
|
1884 |
+
}
|
1885 |
+
|
1886 |
+
return array('hsl', fmod($h, 360), $s * 100, $l / 5.1);
|
1887 |
+
}
|
1888 |
+
|
1889 |
+
public function hueToRGB($m1, $m2, $h) {
|
1890 |
+
if ($h < 0)
|
1891 |
+
$h += 1;
|
1892 |
+
elseif ($h > 1)
|
1893 |
+
$h -= 1;
|
1894 |
+
|
1895 |
+
if ($h * 6 < 1)
|
1896 |
+
return $m1 + ($m2 - $m1) * $h * 6;
|
1897 |
+
|
1898 |
+
if ($h * 2 < 1)
|
1899 |
+
return $m2;
|
1900 |
+
|
1901 |
+
if ($h * 3 < 2)
|
1902 |
+
return $m1 + ($m2 - $m1) * (2/3 - $h) * 6;
|
1903 |
+
|
1904 |
+
return $m1;
|
1905 |
+
}
|
1906 |
+
|
1907 |
+
// H from 0 to 360, S and L from 0 to 100
|
1908 |
+
public function toRGB($hue, $saturation, $lightness) {
|
1909 |
+
if ($hue < 0) {
|
1910 |
+
$hue += 360;
|
1911 |
+
}
|
1912 |
+
|
1913 |
+
$h = $hue / 360;
|
1914 |
+
$s = min(100, max(0, $saturation)) / 100;
|
1915 |
+
$l = min(100, max(0, $lightness)) / 100;
|
1916 |
+
|
1917 |
+
$m2 = $l <= 0.5 ? $l * ($s + 1) : $l + $s - $l * $s;
|
1918 |
+
$m1 = $l * 2 - $m2;
|
1919 |
+
|
1920 |
+
$r = $this->hueToRGB($m1, $m2, $h + 1/3) * 255;
|
1921 |
+
$g = $this->hueToRGB($m1, $m2, $h) * 255;
|
1922 |
+
$b = $this->hueToRGB($m1, $m2, $h - 1/3) * 255;
|
1923 |
+
|
1924 |
+
$out = array('color', $r, $g, $b);
|
1925 |
+
return $out;
|
1926 |
+
}
|
1927 |
+
|
1928 |
+
// Built in functions
|
1929 |
+
|
1930 |
+
protected static $lib_if = array("condition", "if-true", "if-false");
|
1931 |
+
protected function lib_if($args) {
|
1932 |
+
list($cond,$t, $f) = $args;
|
1933 |
+
if (!$this->isTruthy($cond)) return $f;
|
1934 |
+
return $t;
|
1935 |
+
}
|
1936 |
+
|
1937 |
+
protected static $lib_index = array("list", "value");
|
1938 |
+
protected function lib_index($args) {
|
1939 |
+
list($list, $value) = $args;
|
1940 |
+
$list = $this->assertList($list);
|
1941 |
+
|
1942 |
+
$values = array();
|
1943 |
+
foreach ($list[2] as $item) {
|
1944 |
+
$values[] = $this->normalizeValue($item);
|
1945 |
+
}
|
1946 |
+
$key = array_search($this->normalizeValue($value), $values);
|
1947 |
+
|
1948 |
+
return false === $key ? false : $key + 1;
|
1949 |
+
}
|
1950 |
+
|
1951 |
+
protected static $lib_rgb = array("red", "green", "blue");
|
1952 |
+
protected function lib_rgb($args) {
|
1953 |
+
list($r,$g,$b) = $args;
|
1954 |
+
return array("color", $r[1], $g[1], $b[1]);
|
1955 |
+
}
|
1956 |
+
|
1957 |
+
protected static $lib_rgba = array(
|
1958 |
+
array("red", "color"),
|
1959 |
+
"green", "blue", "alpha");
|
1960 |
+
protected function lib_rgba($args) {
|
1961 |
+
if ($color = $this->coerceColor($args[0])) {
|
1962 |
+
$num = !isset($args[1]) ? $args[3] : $args[1];
|
1963 |
+
$alpha = $this->assertNumber($num);
|
1964 |
+
$color[4] = $alpha;
|
1965 |
+
return $color;
|
1966 |
+
}
|
1967 |
+
|
1968 |
+
list($r,$g,$b, $a) = $args;
|
1969 |
+
return array("color", $r[1], $g[1], $b[1], $a[1]);
|
1970 |
+
}
|
1971 |
+
|
1972 |
+
// helper function for adjust_color, change_color, and scale_color
|
1973 |
+
protected function alter_color($args, $fn) {
|
1974 |
+
$color = $this->assertColor($args[0]);
|
1975 |
+
|
1976 |
+
foreach (array(1,2,3,7) as $i) {
|
1977 |
+
if (isset($args[$i])) {
|
1978 |
+
$val = $this->assertNumber($args[$i]);
|
1979 |
+
$ii = $i == 7 ? 4 : $i; // alpha
|
1980 |
+
$color[$ii] =
|
1981 |
+
$this->$fn(isset($color[$ii]) ? $color[$ii] : 0, $val, $i);
|
1982 |
+
}
|
1983 |
+
}
|
1984 |
+
|
1985 |
+
if (isset($args[4]) || isset($args[5]) || isset($args[6])) {
|
1986 |
+
$hsl = $this->toHSL($color[1], $color[2], $color[3]);
|
1987 |
+
foreach (array(4,5,6) as $i) {
|
1988 |
+
if (isset($args[$i])) {
|
1989 |
+
$val = $this->assertNumber($args[$i]);
|
1990 |
+
$hsl[$i - 3] = $this->$fn($hsl[$i - 3], $val, $i);
|
1991 |
+
}
|
1992 |
+
}
|
1993 |
+
|
1994 |
+
$rgb = $this->toRGB($hsl[1], $hsl[2], $hsl[3]);
|
1995 |
+
if (isset($color[4])) $rgb[4] = $color[4];
|
1996 |
+
$color = $rgb;
|
1997 |
+
}
|
1998 |
+
|
1999 |
+
return $color;
|
2000 |
+
}
|
2001 |
+
|
2002 |
+
protected static $lib_adjust_color = array(
|
2003 |
+
"color", "red", "green", "blue",
|
2004 |
+
"hue", "saturation", "lightness", "alpha"
|
2005 |
+
);
|
2006 |
+
protected function adjust_color_helper($base, $alter, $i) {
|
2007 |
+
return $base += $alter;
|
2008 |
+
}
|
2009 |
+
protected function lib_adjust_color($args) {
|
2010 |
+
return $this->alter_color($args, "adjust_color_helper");
|
2011 |
+
}
|
2012 |
+
|
2013 |
+
protected static $lib_change_color = array(
|
2014 |
+
"color", "red", "green", "blue",
|
2015 |
+
"hue", "saturation", "lightness", "alpha"
|
2016 |
+
);
|
2017 |
+
protected function change_color_helper($base, $alter, $i) {
|
2018 |
+
return $alter;
|
2019 |
+
}
|
2020 |
+
protected function lib_change_color($args) {
|
2021 |
+
return $this->alter_color($args, "change_color_helper");
|
2022 |
+
}
|
2023 |
+
|
2024 |
+
protected static $lib_scale_color = array(
|
2025 |
+
"color", "red", "green", "blue",
|
2026 |
+
"hue", "saturation", "lightness", "alpha"
|
2027 |
+
);
|
2028 |
+
protected function scale_color_helper($base, $scale, $i) {
|
2029 |
+
// 1,2,3 - rgb
|
2030 |
+
// 4, 5, 6 - hsl
|
2031 |
+
// 7 - a
|
2032 |
+
switch ($i) {
|
2033 |
+
case 1:
|
2034 |
+
case 2:
|
2035 |
+
case 3:
|
2036 |
+
$max = 255; break;
|
2037 |
+
case 4:
|
2038 |
+
$max = 360; break;
|
2039 |
+
case 7:
|
2040 |
+
$max = 1; break;
|
2041 |
+
default:
|
2042 |
+
$max = 100;
|
2043 |
+
}
|
2044 |
+
|
2045 |
+
$scale = $scale / 100;
|
2046 |
+
if ($scale < 0) {
|
2047 |
+
return $base * $scale + $base;
|
2048 |
+
} else {
|
2049 |
+
return ($max - $base) * $scale + $base;
|
2050 |
+
}
|
2051 |
+
}
|
2052 |
+
protected function lib_scale_color($args) {
|
2053 |
+
return $this->alter_color($args, "scale_color_helper");
|
2054 |
+
}
|
2055 |
+
|
2056 |
+
protected static $lib_ie_hex_str = array("color");
|
2057 |
+
protected function lib_ie_hex_str($args) {
|
2058 |
+
$color = $this->coerceColor($args[0]);
|
2059 |
+
$color[4] = isset($color[4]) ? round(255*$color[4]) : 255;
|
2060 |
+
|
2061 |
+
return sprintf('#%02X%02X%02X%02X', $color[4], $color[1], $color[2], $color[3]);
|
2062 |
+
}
|
2063 |
+
|
2064 |
+
protected static $lib_red = array("color");
|
2065 |
+
protected function lib_red($args) {
|
2066 |
+
$color = $this->coerceColor($args[0]);
|
2067 |
+
return $color[1];
|
2068 |
+
}
|
2069 |
+
|
2070 |
+
protected static $lib_green = array("color");
|
2071 |
+
protected function lib_green($args) {
|
2072 |
+
$color = $this->coerceColor($args[0]);
|
2073 |
+
return $color[2];
|
2074 |
+
}
|
2075 |
+
|
2076 |
+
protected static $lib_blue = array("color");
|
2077 |
+
protected function lib_blue($args) {
|
2078 |
+
$color = $this->coerceColor($args[0]);
|
2079 |
+
return $color[3];
|
2080 |
+
}
|
2081 |
+
|
2082 |
+
protected static $lib_alpha = array("color");
|
2083 |
+
protected function lib_alpha($args) {
|
2084 |
+
if ($color = $this->coerceColor($args[0])) {
|
2085 |
+
return isset($color[4]) ? $color[4] : 1;
|
2086 |
+
}
|
2087 |
+
|
2088 |
+
// this might be the IE function, so return value unchanged
|
2089 |
+
return null;
|
2090 |
+
}
|
2091 |
+
|
2092 |
+
protected static $lib_opacity = array("color");
|
2093 |
+
protected function lib_opacity($args) {
|
2094 |
+
$value = $args[0];
|
2095 |
+
if ($value[0] === 'number') return null;
|
2096 |
+
return $this->lib_alpha($args);
|
2097 |
+
}
|
2098 |
+
|
2099 |
+
// mix two colors
|
2100 |
+
protected static $lib_mix = array("color-1", "color-2", "weight");
|
2101 |
+
protected function lib_mix($args) {
|
2102 |
+
list($first, $second, $weight) = $args;
|
2103 |
+
$first = $this->assertColor($first);
|
2104 |
+
$second = $this->assertColor($second);
|
2105 |
+
|
2106 |
+
if (!isset($weight)) {
|
2107 |
+
$weight = 0.5;
|
2108 |
+
} else {
|
2109 |
+
$weight = $this->coercePercent($weight);
|
2110 |
+
}
|
2111 |
+
|
2112 |
+
$firstAlpha = isset($first[4]) ? $first[4] : 1;
|
2113 |
+
$secondAlpha = isset($second[4]) ? $second[4] : 1;
|
2114 |
+
|
2115 |
+
$w = $weight * 2 - 1;
|
2116 |
+
$a = $firstAlpha - $secondAlpha;
|
2117 |
+
|
2118 |
+
$w1 = (($w * $a == -1 ? $w : ($w + $a)/(1 + $w * $a)) + 1) / 2.0;
|
2119 |
+
$w2 = 1.0 - $w1;
|
2120 |
+
|
2121 |
+
$new = array('color',
|
2122 |
+
$w1 * $first[1] + $w2 * $second[1],
|
2123 |
+
$w1 * $first[2] + $w2 * $second[2],
|
2124 |
+
$w1 * $first[3] + $w2 * $second[3],
|
2125 |
+
);
|
2126 |
+
|
2127 |
+
if ($firstAlpha != 1.0 || $secondAlpha != 1.0) {
|
2128 |
+
$new[] = $firstAlpha * $weight + $secondAlpha * ($weight - 1);
|
2129 |
+
}
|
2130 |
+
|
2131 |
+
return $this->fixColor($new);
|
2132 |
+
}
|
2133 |
+
|
2134 |
+
protected static $lib_hsl = array("hue", "saturation", "lightness");
|
2135 |
+
protected function lib_hsl($args) {
|
2136 |
+
list($h, $s, $l) = $args;
|
2137 |
+
return $this->toRGB($h[1], $s[1], $l[1]);
|
2138 |
+
}
|
2139 |
+
|
2140 |
+
protected static $lib_hsla = array("hue", "saturation",
|
2141 |
+
"lightness", "alpha");
|
2142 |
+
protected function lib_hsla($args) {
|
2143 |
+
list($h, $s, $l, $a) = $args;
|
2144 |
+
$color = $this->toRGB($h[1], $s[1], $l[1]);
|
2145 |
+
$color[4] = $a[1];
|
2146 |
+
return $color;
|
2147 |
+
}
|
2148 |
+
|
2149 |
+
protected static $lib_hue = array("color");
|
2150 |
+
protected function lib_hue($args) {
|
2151 |
+
$color = $this->assertColor($args[0]);
|
2152 |
+
$hsl = $this->toHSL($color[1], $color[2], $color[3]);
|
2153 |
+
return array("number", $hsl[1], "deg");
|
2154 |
+
}
|
2155 |
+
|
2156 |
+
protected static $lib_saturation = array("color");
|
2157 |
+
protected function lib_saturation($args) {
|
2158 |
+
$color = $this->assertColor($args[0]);
|
2159 |
+
$hsl = $this->toHSL($color[1], $color[2], $color[3]);
|
2160 |
+
return array("number", $hsl[2], "%");
|
2161 |
+
}
|
2162 |
+
|
2163 |
+
protected static $lib_lightness = array("color");
|
2164 |
+
protected function lib_lightness($args) {
|
2165 |
+
$color = $this->assertColor($args[0]);
|
2166 |
+
$hsl = $this->toHSL($color[1], $color[2], $color[3]);
|
2167 |
+
return array("number", $hsl[3], "%");
|
2168 |
+
}
|
2169 |
+
|
2170 |
+
protected function adjustHsl($color, $idx, $amount) {
|
2171 |
+
$hsl = $this->toHSL($color[1], $color[2], $color[3]);
|
2172 |
+
$hsl[$idx] += $amount;
|
2173 |
+
$out = $this->toRGB($hsl[1], $hsl[2], $hsl[3]);
|
2174 |
+
if (isset($color[4])) $out[4] = $color[4];
|
2175 |
+
return $out;
|
2176 |
+
}
|
2177 |
+
|
2178 |
+
protected static $lib_adjust_hue = array("color", "degrees");
|
2179 |
+
protected function lib_adjust_hue($args) {
|
2180 |
+
$color = $this->assertColor($args[0]);
|
2181 |
+
$degrees = $this->assertNumber($args[1]);
|
2182 |
+
return $this->adjustHsl($color, 1, $degrees);
|
2183 |
+
}
|
2184 |
+
|
2185 |
+
protected static $lib_lighten = array("color", "amount");
|
2186 |
+
protected function lib_lighten($args) {
|
2187 |
+
$color = $this->assertColor($args[0]);
|
2188 |
+
$amount = 100*$this->coercePercent($args[1]);
|
2189 |
+
return $this->adjustHsl($color, 3, $amount);
|
2190 |
+
}
|
2191 |
+
|
2192 |
+
protected static $lib_darken = array("color", "amount");
|
2193 |
+
protected function lib_darken($args) {
|
2194 |
+
$color = $this->assertColor($args[0]);
|
2195 |
+
$amount = 100*$this->coercePercent($args[1]);
|
2196 |
+
return $this->adjustHsl($color, 3, -$amount);
|
2197 |
+
}
|
2198 |
+
|
2199 |
+
protected static $lib_saturate = array("color", "amount");
|
2200 |
+
protected function lib_saturate($args) {
|
2201 |
+
$value = $args[0];
|
2202 |
+
if ($value[0] === 'number') return null;
|
2203 |
+
$color = $this->assertColor($value);
|
2204 |
+
$amount = 100*$this->coercePercent($args[1]);
|
2205 |
+
return $this->adjustHsl($color, 2, $amount);
|
2206 |
+
}
|
2207 |
+
|
2208 |
+
protected static $lib_desaturate = array("color", "amount");
|
2209 |
+
protected function lib_desaturate($args) {
|
2210 |
+
$color = $this->assertColor($args[0]);
|
2211 |
+
$amount = 100*$this->coercePercent($args[1]);
|
2212 |
+
return $this->adjustHsl($color, 2, -$amount);
|
2213 |
+
}
|
2214 |
+
|
2215 |
+
protected static $lib_grayscale = array("color");
|
2216 |
+
protected function lib_grayscale($args) {
|
2217 |
+
$value = $args[0];
|
2218 |
+
if ($value[0] === 'number') return null;
|
2219 |
+
return $this->adjustHsl($this->assertColor($value), 2, -100);
|
2220 |
+
}
|
2221 |
+
|
2222 |
+
protected static $lib_complement = array("color");
|
2223 |
+
protected function lib_complement($args) {
|
2224 |
+
return $this->adjustHsl($this->assertColor($args[0]), 1, 180);
|
2225 |
+
}
|
2226 |
+
|
2227 |
+
protected static $lib_invert = array("color");
|
2228 |
+
protected function lib_invert($args) {
|
2229 |
+
$value = $args[0];
|
2230 |
+
if ($value[0] === 'number') return null;
|
2231 |
+
$color = $this->assertColor($value);
|
2232 |
+
$color[1] = 255 - $color[1];
|
2233 |
+
$color[2] = 255 - $color[2];
|
2234 |
+
$color[3] = 255 - $color[3];
|
2235 |
+
return $color;
|
2236 |
+
}
|
2237 |
+
|
2238 |
+
// increases opacity by amount
|
2239 |
+
protected static $lib_opacify = array("color", "amount");
|
2240 |
+
protected function lib_opacify($args) {
|
2241 |
+
$color = $this->assertColor($args[0]);
|
2242 |
+
$amount = $this->coercePercent($args[1]);
|
2243 |
+
|
2244 |
+
$color[4] = (isset($color[4]) ? $color[4] : 1) + $amount;
|
2245 |
+
$color[4] = min(1, max(0, $color[4]));
|
2246 |
+
return $color;
|
2247 |
+
}
|
2248 |
+
|
2249 |
+
protected static $lib_fade_in = array("color", "amount");
|
2250 |
+
protected function lib_fade_in($args) {
|
2251 |
+
return $this->lib_opacify($args);
|
2252 |
+
}
|
2253 |
+
|
2254 |
+
// decreases opacity by amount
|
2255 |
+
protected static $lib_transparentize = array("color", "amount");
|
2256 |
+
protected function lib_transparentize($args) {
|
2257 |
+
$color = $this->assertColor($args[0]);
|
2258 |
+
$amount = $this->coercePercent($args[1]);
|
2259 |
+
|
2260 |
+
$color[4] = (isset($color[4]) ? $color[4] : 1) - $amount;
|
2261 |
+
$color[4] = min(1, max(0, $color[4]));
|
2262 |
+
return $color;
|
2263 |
+
}
|
2264 |
+
|
2265 |
+
protected static $lib_fade_out = array("color", "amount");
|
2266 |
+
protected function lib_fade_out($args) {
|
2267 |
+
return $this->lib_transparentize($args);
|
2268 |
+
}
|
2269 |
+
|
2270 |
+
protected static $lib_unquote = array("string");
|
2271 |
+
protected function lib_unquote($args) {
|
2272 |
+
$str = $args[0];
|
2273 |
+
if ($str[0] == "string") $str[1] = "";
|
2274 |
+
return $str;
|
2275 |
+
}
|
2276 |
+
|
2277 |
+
protected static $lib_quote = array("string");
|
2278 |
+
protected function lib_quote($args) {
|
2279 |
+
$value = $args[0];
|
2280 |
+
if ($value[0] == "string" && !empty($value[1]))
|
2281 |
+
return $value;
|
2282 |
+
return array("string", '"', array($value));
|
2283 |
+
}
|
2284 |
+
|
2285 |
+
protected static $lib_percentage = array("value");
|
2286 |
+
protected function lib_percentage($args) {
|
2287 |
+
return array("number",
|
2288 |
+
$this->coercePercent($args[0]) * 100,
|
2289 |
+
"%");
|
2290 |
+
}
|
2291 |
+
|
2292 |
+
protected static $lib_round = array("value");
|
2293 |
+
protected function lib_round($args) {
|
2294 |
+
$num = $args[0];
|
2295 |
+
$num[1] = round($num[1]);
|
2296 |
+
return $num;
|
2297 |
+
}
|
2298 |
+
|
2299 |
+
protected static $lib_floor = array("value");
|
2300 |
+
protected function lib_floor($args) {
|
2301 |
+
$num = $args[0];
|
2302 |
+
$num[1] = floor($num[1]);
|
2303 |
+
return $num;
|
2304 |
+
}
|
2305 |
+
|
2306 |
+
protected static $lib_ceil = array("value");
|
2307 |
+
protected function lib_ceil($args) {
|
2308 |
+
$num = $args[0];
|
2309 |
+
$num[1] = ceil($num[1]);
|
2310 |
+
return $num;
|
2311 |
+
}
|
2312 |
+
|
2313 |
+
protected static $lib_abs = array("value");
|
2314 |
+
protected function lib_abs($args) {
|
2315 |
+
$num = $args[0];
|
2316 |
+
$num[1] = abs($num[1]);
|
2317 |
+
return $num;
|
2318 |
+
}
|
2319 |
+
|
2320 |
+
protected function lib_min($args) {
|
2321 |
+
$numbers = $this->getNormalizedNumbers($args);
|
2322 |
+
$min = null;
|
2323 |
+
foreach ($numbers as $key => $number) {
|
2324 |
+
if (null === $min || $number[1] <= $min[1]) {
|
2325 |
+
$min = array($key, $number[1]);
|
2326 |
+
}
|
2327 |
+
}
|
2328 |
+
|
2329 |
+
return $args[$min[0]];
|
2330 |
+
}
|
2331 |
+
|
2332 |
+
protected function lib_max($args) {
|
2333 |
+
$numbers = $this->getNormalizedNumbers($args);
|
2334 |
+
$max = null;
|
2335 |
+
foreach ($numbers as $key => $number) {
|
2336 |
+
if (null === $max || $number[1] >= $max[1]) {
|
2337 |
+
$max = array($key, $number[1]);
|
2338 |
+
}
|
2339 |
+
}
|
2340 |
+
|
2341 |
+
return $args[$max[0]];
|
2342 |
+
}
|
2343 |
+
|
2344 |
+
protected function getNormalizedNumbers($args) {
|
2345 |
+
$unit = null;
|
2346 |
+
$originalUnit = null;
|
2347 |
+
$numbers = array();
|
2348 |
+
foreach ($args as $key => $item) {
|
2349 |
+
if ('number' != $item[0]) {
|
2350 |
+
$this->throwError("%s is not a number", $item[0]);
|
2351 |
+
}
|
2352 |
+
$number = $this->normalizeNumber($item);
|
2353 |
+
|
2354 |
+
if (null === $unit) {
|
2355 |
+
$unit = $number[2];
|
2356 |
+
$originalUnit = $item[2];
|
2357 |
+
} elseif ($unit !== $number[2]) {
|
2358 |
+
$this->throwError('Incompatible units: "%s" and "%s".', $originalUnit, $item[2]);
|
2359 |
+
}
|
2360 |
+
|
2361 |
+
$numbers[$key] = $number;
|
2362 |
+
}
|
2363 |
+
|
2364 |
+
return $numbers;
|
2365 |
+
}
|
2366 |
+
|
2367 |
+
protected static $lib_length = array("list");
|
2368 |
+
protected function lib_length($args) {
|
2369 |
+
$list = $this->coerceList($args[0]);
|
2370 |
+
return count($list[2]);
|
2371 |
+
}
|
2372 |
+
|
2373 |
+
protected static $lib_nth = array("list", "n");
|
2374 |
+
protected function lib_nth($args) {
|
2375 |
+
$list = $this->coerceList($args[0]);
|
2376 |
+
$n = $this->assertNumber($args[1]) - 1;
|
2377 |
+
return isset($list[2][$n]) ? $list[2][$n] : self::$defaultValue;
|
2378 |
+
}
|
2379 |
+
|
2380 |
+
protected function listSeparatorForJoin($list1, $sep) {
|
2381 |
+
if (!isset($sep)) return $list1[1];
|
2382 |
+
switch ($this->compileValue($sep)) {
|
2383 |
+
case "comma":
|
2384 |
+
return ",";
|
2385 |
+
case "space":
|
2386 |
+
return "";
|
2387 |
+
default:
|
2388 |
+
return $list1[1];
|
2389 |
+
}
|
2390 |
+
}
|
2391 |
+
|
2392 |
+
protected static $lib_join = array("list1", "list2", "separator");
|
2393 |
+
protected function lib_join($args) {
|
2394 |
+
list($list1, $list2, $sep) = $args;
|
2395 |
+
$list1 = $this->coerceList($list1, " ");
|
2396 |
+
$list2 = $this->coerceList($list2, " ");
|
2397 |
+
$sep = $this->listSeparatorForJoin($list1, $sep);
|
2398 |
+
return array("list", $sep, array_merge($list1[2], $list2[2]));
|
2399 |
+
}
|
2400 |
+
|
2401 |
+
protected static $lib_append = array("list", "val", "separator");
|
2402 |
+
protected function lib_append($args) {
|
2403 |
+
list($list1, $value, $sep) = $args;
|
2404 |
+
$list1 = $this->coerceList($list1, " ");
|
2405 |
+
$sep = $this->listSeparatorForJoin($list1, $sep);
|
2406 |
+
return array("list", $sep, array_merge($list1[2], array($value)));
|
2407 |
+
}
|
2408 |
+
|
2409 |
+
protected function lib_zip($args) {
|
2410 |
+
foreach ($args as $arg) {
|
2411 |
+
$this->assertList($arg);
|
2412 |
+
}
|
2413 |
+
|
2414 |
+
$lists = array();
|
2415 |
+
$firstList = array_shift($args);
|
2416 |
+
foreach ($firstList[2] as $key => $item) {
|
2417 |
+
$list = array("list", "", array($item));
|
2418 |
+
foreach ($args as $arg) {
|
2419 |
+
if (isset($arg[2][$key])) {
|
2420 |
+
$list[2][] = $arg[2][$key];
|
2421 |
+
} else {
|
2422 |
+
break 2;
|
2423 |
+
}
|
2424 |
+
}
|
2425 |
+
$lists[] = $list;
|
2426 |
+
}
|
2427 |
+
|
2428 |
+
return array("list", ",", $lists);
|
2429 |
+
}
|
2430 |
+
|
2431 |
+
protected static $lib_type_of = array("value");
|
2432 |
+
protected function lib_type_of($args) {
|
2433 |
+
$value = $args[0];
|
2434 |
+
switch ($value[0]) {
|
2435 |
+
case "keyword":
|
2436 |
+
if ($value == self::$true || $value == self::$false) {
|
2437 |
+
return "bool";
|
2438 |
+
}
|
2439 |
+
|
2440 |
+
if ($this->coerceColor($value)) {
|
2441 |
+
return "color";
|
2442 |
+
}
|
2443 |
+
|
2444 |
+
return "string";
|
2445 |
+
default:
|
2446 |
+
return $value[0];
|
2447 |
+
}
|
2448 |
+
}
|
2449 |
+
|
2450 |
+
protected static $lib_unit = array("number");
|
2451 |
+
protected function lib_unit($args) {
|
2452 |
+
$num = $args[0];
|
2453 |
+
if ($num[0] == "number") {
|
2454 |
+
return array("string", '"', array($num[2]));
|
2455 |
+
}
|
2456 |
+
return "";
|
2457 |
+
}
|
2458 |
+
|
2459 |
+
protected static $lib_unitless = array("number");
|
2460 |
+
protected function lib_unitless($args) {
|
2461 |
+
$value = $args[0];
|
2462 |
+
return $value[0] == "number" && empty($value[2]);
|
2463 |
+
}
|
2464 |
+
|
2465 |
+
protected static $lib_comparable = array("number-1", "number-2");
|
2466 |
+
protected function lib_comparable($args) {
|
2467 |
+
list($number1, $number2) = $args;
|
2468 |
+
if (!isset($number1[0]) || $number1[0] != "number" || !isset($number2[0]) || $number2[0] != "number") {
|
2469 |
+
$this->throwError('Invalid argument(s) for "comparable"');
|
2470 |
+
}
|
2471 |
+
|
2472 |
+
$number1 = $this->normalizeNumber($number1);
|
2473 |
+
$number2 = $this->normalizeNumber($number2);
|
2474 |
+
|
2475 |
+
return $number1[2] == $number2[2] || $number1[2] == "" || $number2[2] == "";
|
2476 |
+
}
|
2477 |
+
|
2478 |
+
/**
|
2479 |
+
* Workaround IE7's content counter bug.
|
2480 |
+
*
|
2481 |
+
* @param array $args
|
2482 |
+
*/
|
2483 |
+
protected function lib_counter($args) {
|
2484 |
+
$list = array_map(array($this, 'compileValue'), $args);
|
2485 |
+
return array('string', '', array('counter(' . implode(',', $list) . ')'));
|
2486 |
+
}
|
2487 |
+
|
2488 |
+
public function throwError($msg = null) {
|
2489 |
+
if (func_num_args() > 1) {
|
2490 |
+
$msg = call_user_func_array("sprintf", func_get_args());
|
2491 |
+
}
|
2492 |
+
|
2493 |
+
if ($this->sourcePos >= 0 && isset($this->sourceParser)) {
|
2494 |
+
$this->sourceParser->throwParseError($msg, $this->sourcePos);
|
2495 |
+
}
|
2496 |
+
|
2497 |
+
throw new Exception($msg);
|
2498 |
+
}
|
2499 |
+
|
2500 |
+
/**
|
2501 |
+
* CSS Colors
|
2502 |
+
*
|
2503 |
+
* @see http://www.w3.org/TR/css3-color
|
2504 |
+
*/
|
2505 |
+
static protected $cssColors = array(
|
2506 |
+
'aliceblue' => '240,248,255',
|
2507 |
+
'antiquewhite' => '250,235,215',
|
2508 |
+
'aqua' => '0,255,255',
|
2509 |
+
'aquamarine' => '127,255,212',
|
2510 |
+
'azure' => '240,255,255',
|
2511 |
+
'beige' => '245,245,220',
|
2512 |
+
'bisque' => '255,228,196',
|
2513 |
+
'black' => '0,0,0',
|
2514 |
+
'blanchedalmond' => '255,235,205',
|
2515 |
+
'blue' => '0,0,255',
|
2516 |
+
'blueviolet' => '138,43,226',
|
2517 |
+
'brown' => '165,42,42',
|
2518 |
+
'burlywood' => '222,184,135',
|
2519 |
+
'cadetblue' => '95,158,160',
|
2520 |
+
'chartreuse' => '127,255,0',
|
2521 |
+
'chocolate' => '210,105,30',
|
2522 |
+
'coral' => '255,127,80',
|
2523 |
+
'cornflowerblue' => '100,149,237',
|
2524 |
+
'cornsilk' => '255,248,220',
|
2525 |
+
'crimson' => '220,20,60',
|
2526 |
+
'cyan' => '0,255,255',
|
2527 |
+
'darkblue' => '0,0,139',
|
2528 |
+
'darkcyan' => '0,139,139',
|
2529 |
+
'darkgoldenrod' => '184,134,11',
|
2530 |
+
'darkgray' => '169,169,169',
|
2531 |
+
'darkgreen' => '0,100,0',
|
2532 |
+
'darkgrey' => '169,169,169',
|
2533 |
+
'darkkhaki' => '189,183,107',
|
2534 |
+
'darkmagenta' => '139,0,139',
|
2535 |
+
'darkolivegreen' => '85,107,47',
|
2536 |
+
'darkorange' => '255,140,0',
|
2537 |
+
'darkorchid' => '153,50,204',
|
2538 |
+
'darkred' => '139,0,0',
|
2539 |
+
'darksalmon' => '233,150,122',
|
2540 |
+
'darkseagreen' => '143,188,143',
|
2541 |
+
'darkslateblue' => '72,61,139',
|
2542 |
+
'darkslategray' => '47,79,79',
|
2543 |
+
'darkslategrey' => '47,79,79',
|
2544 |
+
'darkturquoise' => '0,206,209',
|
2545 |
+
'darkviolet' => '148,0,211',
|
2546 |
+
'deeppink' => '255,20,147',
|
2547 |
+
'deepskyblue' => '0,191,255',
|
2548 |
+
'dimgray' => '105,105,105',
|
2549 |
+
'dimgrey' => '105,105,105',
|
2550 |
+
'dodgerblue' => '30,144,255',
|
2551 |
+
'firebrick' => '178,34,34',
|
2552 |
+
'floralwhite' => '255,250,240',
|
2553 |
+
'forestgreen' => '34,139,34',
|
2554 |
+
'fuchsia' => '255,0,255',
|
2555 |
+
'gainsboro' => '220,220,220',
|
2556 |
+
'ghostwhite' => '248,248,255',
|
2557 |
+
'gold' => '255,215,0',
|
2558 |
+
'goldenrod' => '218,165,32',
|
2559 |
+
'gray' => '128,128,128',
|
2560 |
+
'green' => '0,128,0',
|
2561 |
+
'greenyellow' => '173,255,47',
|
2562 |
+
'grey' => '128,128,128',
|
2563 |
+
'honeydew' => '240,255,240',
|
2564 |
+
'hotpink' => '255,105,180',
|
2565 |
+
'indianred' => '205,92,92',
|
2566 |
+
'indigo' => '75,0,130',
|
2567 |
+
'ivory' => '255,255,240',
|
2568 |
+
'khaki' => '240,230,140',
|
2569 |
+
'lavender' => '230,230,250',
|
2570 |
+
'lavenderblush' => '255,240,245',
|
2571 |
+
'lawngreen' => '124,252,0',
|
2572 |
+
'lemonchiffon' => '255,250,205',
|
2573 |
+
'lightblue' => '173,216,230',
|
2574 |
+
'lightcoral' => '240,128,128',
|
2575 |
+
'lightcyan' => '224,255,255',
|
2576 |
+
'lightgoldenrodyellow' => '250,250,210',
|
2577 |
+
'lightgray' => '211,211,211',
|
2578 |
+
'lightgreen' => '144,238,144',
|
2579 |
+
'lightgrey' => '211,211,211',
|
2580 |
+
'lightpink' => '255,182,193',
|
2581 |
+
'lightsalmon' => '255,160,122',
|
2582 |
+
'lightseagreen' => '32,178,170',
|
2583 |
+
'lightskyblue' => '135,206,250',
|
2584 |
+
'lightslategray' => '119,136,153',
|
2585 |
+
'lightslategrey' => '119,136,153',
|
2586 |
+
'lightsteelblue' => '176,196,222',
|
2587 |
+
'lightyellow' => '255,255,224',
|
2588 |
+
'lime' => '0,255,0',
|
2589 |
+
'limegreen' => '50,205,50',
|
2590 |
+
'linen' => '250,240,230',
|
2591 |
+
'magenta' => '255,0,255',
|
2592 |
+
'maroon' => '128,0,0',
|
2593 |
+
'mediumaquamarine' => '102,205,170',
|
2594 |
+
'mediumblue' => '0,0,205',
|
2595 |
+
'mediumorchid' => '186,85,211',
|
2596 |
+
'mediumpurple' => '147,112,219',
|
2597 |
+
'mediumseagreen' => '60,179,113',
|
2598 |
+
'mediumslateblue' => '123,104,238',
|
2599 |
+
'mediumspringgreen' => '0,250,154',
|
2600 |
+
'mediumturquoise' => '72,209,204',
|
2601 |
+
'mediumvioletred' => '199,21,133',
|
2602 |
+
'midnightblue' => '25,25,112',
|
2603 |
+
'mintcream' => '245,255,250',
|
2604 |
+
'mistyrose' => '255,228,225',
|
2605 |
+
'moccasin' => '255,228,181',
|
2606 |
+
'navajowhite' => '255,222,173',
|
2607 |
+
'navy' => '0,0,128',
|
2608 |
+
'oldlace' => '253,245,230',
|
2609 |
+
'olive' => '128,128,0',
|
2610 |
+
'olivedrab' => '107,142,35',
|
2611 |
+
'orange' => '255,165,0',
|
2612 |
+
'orangered' => '255,69,0',
|
2613 |
+
'orchid' => '218,112,214',
|
2614 |
+
'palegoldenrod' => '238,232,170',
|
2615 |
+
'palegreen' => '152,251,152',
|
2616 |
+
'paleturquoise' => '175,238,238',
|
2617 |
+
'palevioletred' => '219,112,147',
|
2618 |
+
'papayawhip' => '255,239,213',
|
2619 |
+
'peachpuff' => '255,218,185',
|
2620 |
+
'peru' => '205,133,63',
|
2621 |
+
'pink' => '255,192,203',
|
2622 |
+
'plum' => '221,160,221',
|
2623 |
+
'powderblue' => '176,224,230',
|
2624 |
+
'purple' => '128,0,128',
|
2625 |
+
'red' => '255,0,0',
|
2626 |
+
'rosybrown' => '188,143,143',
|
2627 |
+
'royalblue' => '65,105,225',
|
2628 |
+
'saddlebrown' => '139,69,19',
|
2629 |
+
'salmon' => '250,128,114',
|
2630 |
+
'sandybrown' => '244,164,96',
|
2631 |
+
'seagreen' => '46,139,87',
|
2632 |
+
'seashell' => '255,245,238',
|
2633 |
+
'sienna' => '160,82,45',
|
2634 |
+
'silver' => '192,192,192',
|
2635 |
+
'skyblue' => '135,206,235',
|
2636 |
+
'slateblue' => '106,90,205',
|
2637 |
+
'slategray' => '112,128,144',
|
2638 |
+
'slategrey' => '112,128,144',
|
2639 |
+
'snow' => '255,250,250',
|
2640 |
+
'springgreen' => '0,255,127',
|
2641 |
+
'steelblue' => '70,130,180',
|
2642 |
+
'tan' => '210,180,140',
|
2643 |
+
'teal' => '0,128,128',
|
2644 |
+
'thistle' => '216,191,216',
|
2645 |
+
'tomato' => '255,99,71',
|
2646 |
+
'transparent' => '0,0,0,0',
|
2647 |
+
'turquoise' => '64,224,208',
|
2648 |
+
'violet' => '238,130,238',
|
2649 |
+
'wheat' => '245,222,179',
|
2650 |
+
'white' => '255,255,255',
|
2651 |
+
'whitesmoke' => '245,245,245',
|
2652 |
+
'yellow' => '255,255,0',
|
2653 |
+
'yellowgreen' => '154,205,50'
|
2654 |
+
);
|
2655 |
+
}
|
2656 |
+
|
2657 |
+
/**
|
2658 |
+
* SCSS parser
|
2659 |
+
*
|
2660 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
2661 |
+
*/
|
2662 |
+
class scss_parser_free {
|
2663 |
+
static protected $precedence = array(
|
2664 |
+
"or" => 0,
|
2665 |
+
"and" => 1,
|
2666 |
+
|
2667 |
+
'==' => 2,
|
2668 |
+
'!=' => 2,
|
2669 |
+
'<=' => 2,
|
2670 |
+
'>=' => 2,
|
2671 |
+
'=' => 2,
|
2672 |
+
'<' => 3,
|
2673 |
+
'>' => 2,
|
2674 |
+
|
2675 |
+
'+' => 3,
|
2676 |
+
'-' => 3,
|
2677 |
+
'*' => 4,
|
2678 |
+
'/' => 4,
|
2679 |
+
'%' => 4,
|
2680 |
+
);
|
2681 |
+
|
2682 |
+
static protected $operators = array("+", "-", "*", "/", "%",
|
2683 |
+
"==", "!=", "<=", ">=", "<", ">", "and", "or");
|
2684 |
+
|
2685 |
+
static protected $operatorStr;
|
2686 |
+
static protected $whitePattern;
|
2687 |
+
static protected $commentMulti;
|
2688 |
+
|
2689 |
+
static protected $commentSingle = "//";
|
2690 |
+
static protected $commentMultiLeft = "/*";
|
2691 |
+
static protected $commentMultiRight = "*/";
|
2692 |
+
|
2693 |
+
/**
|
2694 |
+
* Constructor
|
2695 |
+
*
|
2696 |
+
* @param string $sourceName
|
2697 |
+
* @param boolean $rootParser
|
2698 |
+
*/
|
2699 |
+
public function __construct($sourceName = null, $rootParser = true) {
|
2700 |
+
$this->sourceName = $sourceName;
|
2701 |
+
$this->rootParser = $rootParser;
|
2702 |
+
|
2703 |
+
if (empty(self::$operatorStr)) {
|
2704 |
+
self::$operatorStr = $this->makeOperatorStr(self::$operators);
|
2705 |
+
|
2706 |
+
$commentSingle = $this->preg_quote(self::$commentSingle);
|
2707 |
+
$commentMultiLeft = $this->preg_quote(self::$commentMultiLeft);
|
2708 |
+
$commentMultiRight = $this->preg_quote(self::$commentMultiRight);
|
2709 |
+
self::$commentMulti = $commentMultiLeft.'.*?'.$commentMultiRight;
|
2710 |
+
self::$whitePattern = '/'.$commentSingle.'[^\n]*\s*|('.self::$commentMulti.')\s*|\s+/Ais';
|
2711 |
+
}
|
2712 |
+
}
|
2713 |
+
|
2714 |
+
static protected function makeOperatorStr($operators) {
|
2715 |
+
return '('.implode('|', array_map(array('scss_parser_free','preg_quote'),
|
2716 |
+
$operators)).')';
|
2717 |
+
}
|
2718 |
+
|
2719 |
+
/**
|
2720 |
+
* Parser buffer
|
2721 |
+
*
|
2722 |
+
* @param string $buffer;
|
2723 |
+
*
|
2724 |
+
* @return \StdClass
|
2725 |
+
*/
|
2726 |
+
public function parse($buffer)
|
2727 |
+
{
|
2728 |
+
$this->count = 0;
|
2729 |
+
$this->env = null;
|
2730 |
+
$this->inParens = false;
|
2731 |
+
$this->eatWhiteDefault = true;
|
2732 |
+
$this->insertComments = true;
|
2733 |
+
$this->buffer = $buffer;
|
2734 |
+
|
2735 |
+
$this->pushBlock(null); // root block
|
2736 |
+
$this->whitespace();
|
2737 |
+
|
2738 |
+
while (false !== $this->parseChunk())
|
2739 |
+
;
|
2740 |
+
|
2741 |
+
if ($this->count != strlen($this->buffer)) {
|
2742 |
+
$this->throwParseError();
|
2743 |
+
}
|
2744 |
+
|
2745 |
+
if (!empty($this->env->parent)) {
|
2746 |
+
$this->throwParseError("unclosed block");
|
2747 |
+
}
|
2748 |
+
|
2749 |
+
$this->env->isRoot = true;
|
2750 |
+
|
2751 |
+
return $this->env;
|
2752 |
+
}
|
2753 |
+
|
2754 |
+
/**
|
2755 |
+
* Parse a single chunk off the head of the buffer and append it to the
|
2756 |
+
* current parse environment.
|
2757 |
+
*
|
2758 |
+
* Returns false when the buffer is empty, or when there is an error.
|
2759 |
+
*
|
2760 |
+
* This function is called repeatedly until the entire document is
|
2761 |
+
* parsed.
|
2762 |
+
*
|
2763 |
+
* This parser is most similar to a recursive descent parser. Single
|
2764 |
+
* functions represent discrete grammatical rules for the language, and
|
2765 |
+
* they are able to capture the text that represents those rules.
|
2766 |
+
*
|
2767 |
+
* Consider the function scssc::keyword(). (All parse functions are
|
2768 |
+
* structured the same.)
|
2769 |
+
*
|
2770 |
+
* The function takes a single reference argument. When calling the
|
2771 |
+
* function it will attempt to match a keyword on the head of the buffer.
|
2772 |
+
* If it is successful, it will place the keyword in the referenced
|
2773 |
+
* argument, advance the position in the buffer, and return true. If it
|
2774 |
+
* fails then it won't advance the buffer and it will return false.
|
2775 |
+
*
|
2776 |
+
* All of these parse functions are powered by scssc::match(), which behaves
|
2777 |
+
* the same way, but takes a literal regular expression. Sometimes it is
|
2778 |
+
* more convenient to use match instead of creating a new function.
|
2779 |
+
*
|
2780 |
+
* Because of the format of the functions, to parse an entire string of
|
2781 |
+
* grammatical rules, you can chain them together using &&.
|
2782 |
+
*
|
2783 |
+
* But, if some of the rules in the chain succeed before one fails, then
|
2784 |
+
* the buffer position will be left at an invalid state. In order to
|
2785 |
+
* avoid this, scssc::seek() is used to remember and set buffer positions.
|
2786 |
+
*
|
2787 |
+
* Before parsing a chain, use $s = $this->seek() to remember the current
|
2788 |
+
* position into $s. Then if a chain fails, use $this->seek($s) to
|
2789 |
+
* go back where we started.
|
2790 |
+
*
|
2791 |
+
* @return boolean
|
2792 |
+
*/
|
2793 |
+
protected function parseChunk() {
|
2794 |
+
$s = $this->seek();
|
2795 |
+
|
2796 |
+
// the directives
|
2797 |
+
if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "@") {
|
2798 |
+
if ($this->literal("@media") && $this->mediaQueryList($mediaQueryList) && $this->literal("{")) {
|
2799 |
+
$media = $this->pushSpecialBlock("media");
|
2800 |
+
$media->queryList = $mediaQueryList[2];
|
2801 |
+
return true;
|
2802 |
+
} else {
|
2803 |
+
$this->seek($s);
|
2804 |
+
}
|
2805 |
+
|
2806 |
+
if ($this->literal("@mixin") &&
|
2807 |
+
$this->keyword($mixinName) &&
|
2808 |
+
($this->argumentDef($args) || true) &&
|
2809 |
+
$this->literal("{"))
|
2810 |
+
{
|
2811 |
+
$mixin = $this->pushSpecialBlock("mixin");
|
2812 |
+
$mixin->name = $mixinName;
|
2813 |
+
$mixin->args = $args;
|
2814 |
+
return true;
|
2815 |
+
} else {
|
2816 |
+
$this->seek($s);
|
2817 |
+
}
|
2818 |
+
|
2819 |
+
if ($this->literal("@include") &&
|
2820 |
+
$this->keyword($mixinName) &&
|
2821 |
+
($this->literal("(") &&
|
2822 |
+
($this->argValues($argValues) || true) &&
|
2823 |
+
$this->literal(")") || true) &&
|
2824 |
+
($this->end() ||
|
2825 |
+
$this->literal("{") && $hasBlock = true))
|
2826 |
+
{
|
2827 |
+
$child = array("include",
|
2828 |
+
$mixinName, isset($argValues) ? $argValues : null, null);
|
2829 |
+
|
2830 |
+
if (!empty($hasBlock)) {
|
2831 |
+
$include = $this->pushSpecialBlock("include");
|
2832 |
+
$include->child = $child;
|
2833 |
+
} else {
|
2834 |
+
$this->append($child, $s);
|
2835 |
+
}
|
2836 |
+
|
2837 |
+
return true;
|
2838 |
+
} else {
|
2839 |
+
$this->seek($s);
|
2840 |
+
}
|
2841 |
+
|
2842 |
+
if ($this->literal("@import") &&
|
2843 |
+
$this->valueList($importPath) &&
|
2844 |
+
$this->end())
|
2845 |
+
{
|
2846 |
+
$this->append(array("import", $importPath), $s);
|
2847 |
+
return true;
|
2848 |
+
} else {
|
2849 |
+
$this->seek($s);
|
2850 |
+
}
|
2851 |
+
|
2852 |
+
if ($this->literal("@extend") &&
|
2853 |
+
$this->selectors($selector) &&
|
2854 |
+
$this->end())
|
2855 |
+
{
|
2856 |
+
$this->append(array("extend", $selector), $s);
|
2857 |
+
return true;
|
2858 |
+
} else {
|
2859 |
+
$this->seek($s);
|
2860 |
+
}
|
2861 |
+
|
2862 |
+
if ($this->literal("@function") &&
|
2863 |
+
$this->keyword($fnName) &&
|
2864 |
+
$this->argumentDef($args) &&
|
2865 |
+
$this->literal("{"))
|
2866 |
+
{
|
2867 |
+
$func = $this->pushSpecialBlock("function");
|
2868 |
+
$func->name = $fnName;
|
2869 |
+
$func->args = $args;
|
2870 |
+
return true;
|
2871 |
+
} else {
|
2872 |
+
$this->seek($s);
|
2873 |
+
}
|
2874 |
+
|
2875 |
+
if ($this->literal("@return") && $this->valueList($retVal) && $this->end()) {
|
2876 |
+
$this->append(array("return", $retVal), $s);
|
2877 |
+
return true;
|
2878 |
+
} else {
|
2879 |
+
$this->seek($s);
|
2880 |
+
}
|
2881 |
+
|
2882 |
+
if ($this->literal("@each") &&
|
2883 |
+
$this->variable($varName) &&
|
2884 |
+
$this->literal("in") &&
|
2885 |
+
$this->valueList($list) &&
|
2886 |
+
$this->literal("{"))
|
2887 |
+
{
|
2888 |
+
$each = $this->pushSpecialBlock("each");
|
2889 |
+
$each->var = $varName[1];
|
2890 |
+
$each->list = $list;
|
2891 |
+
return true;
|
2892 |
+
} else {
|
2893 |
+
$this->seek($s);
|
2894 |
+
}
|
2895 |
+
|
2896 |
+
if ($this->literal("@while") &&
|
2897 |
+
$this->expression($cond) &&
|
2898 |
+
$this->literal("{"))
|
2899 |
+
{
|
2900 |
+
$while = $this->pushSpecialBlock("while");
|
2901 |
+
$while->cond = $cond;
|
2902 |
+
return true;
|
2903 |
+
} else {
|
2904 |
+
$this->seek($s);
|
2905 |
+
}
|
2906 |
+
|
2907 |
+
if ($this->literal("@for") &&
|
2908 |
+
$this->variable($varName) &&
|
2909 |
+
$this->literal("from") &&
|
2910 |
+
$this->expression($start) &&
|
2911 |
+
($this->literal("through") ||
|
2912 |
+
($forUntil = true && $this->literal("to"))) &&
|
2913 |
+
$this->expression($end) &&
|
2914 |
+
$this->literal("{"))
|
2915 |
+
{
|
2916 |
+
$for = $this->pushSpecialBlock("for");
|
2917 |
+
$for->var = $varName[1];
|
2918 |
+
$for->start = $start;
|
2919 |
+
$for->end = $end;
|
2920 |
+
$for->until = isset($forUntil);
|
2921 |
+
return true;
|
2922 |
+
} else {
|
2923 |
+
$this->seek($s);
|
2924 |
+
}
|
2925 |
+
|
2926 |
+
if ($this->literal("@if") && $this->valueList($cond) && $this->literal("{")) {
|
2927 |
+
$if = $this->pushSpecialBlock("if");
|
2928 |
+
$if->cond = $cond;
|
2929 |
+
$if->cases = array();
|
2930 |
+
return true;
|
2931 |
+
} else {
|
2932 |
+
$this->seek($s);
|
2933 |
+
}
|
2934 |
+
|
2935 |
+
if (($this->literal("@debug") || $this->literal("@warn")) &&
|
2936 |
+
$this->valueList($value) &&
|
2937 |
+
$this->end()) {
|
2938 |
+
$this->append(array("debug", $value, $s), $s);
|
2939 |
+
return true;
|
2940 |
+
} else {
|
2941 |
+
$this->seek($s);
|
2942 |
+
}
|
2943 |
+
|
2944 |
+
if ($this->literal("@content") && $this->end()) {
|
2945 |
+
$this->append(array("mixin_content"), $s);
|
2946 |
+
return true;
|
2947 |
+
} else {
|
2948 |
+
$this->seek($s);
|
2949 |
+
}
|
2950 |
+
|
2951 |
+
$last = $this->last();
|
2952 |
+
if (isset($last) && $last[0] == "if") {
|
2953 |
+
list(, $if) = $last;
|
2954 |
+
if ($this->literal("@else")) {
|
2955 |
+
if ($this->literal("{")) {
|
2956 |
+
$else = $this->pushSpecialBlock("else");
|
2957 |
+
} elseif ($this->literal("if") && $this->valueList($cond) && $this->literal("{")) {
|
2958 |
+
$else = $this->pushSpecialBlock("elseif");
|
2959 |
+
$else->cond = $cond;
|
2960 |
+
}
|
2961 |
+
|
2962 |
+
if (isset($else)) {
|
2963 |
+
$else->dontAppend = true;
|
2964 |
+
$if->cases[] = $else;
|
2965 |
+
return true;
|
2966 |
+
}
|
2967 |
+
}
|
2968 |
+
|
2969 |
+
$this->seek($s);
|
2970 |
+
}
|
2971 |
+
|
2972 |
+
if ($this->literal("@charset") &&
|
2973 |
+
$this->valueList($charset) && $this->end())
|
2974 |
+
{
|
2975 |
+
$this->append(array("charset", $charset), $s);
|
2976 |
+
return true;
|
2977 |
+
} else {
|
2978 |
+
$this->seek($s);
|
2979 |
+
}
|
2980 |
+
|
2981 |
+
// doesn't match built in directive, do generic one
|
2982 |
+
if ($this->literal("@", false) && $this->keyword($dirName) &&
|
2983 |
+
($this->openString("{", $dirValue) || true) &&
|
2984 |
+
$this->literal("{"))
|
2985 |
+
{
|
2986 |
+
$directive = $this->pushSpecialBlock("directive");
|
2987 |
+
$directive->name = $dirName;
|
2988 |
+
if (isset($dirValue)) $directive->value = $dirValue;
|
2989 |
+
return true;
|
2990 |
+
}
|
2991 |
+
|
2992 |
+
$this->seek($s);
|
2993 |
+
return false;
|
2994 |
+
}
|
2995 |
+
|
2996 |
+
// property shortcut
|
2997 |
+
// captures most properties before having to parse a selector
|
2998 |
+
if ($this->keyword($name, false) &&
|
2999 |
+
$this->literal(": ") &&
|
3000 |
+
$this->valueList($value) &&
|
3001 |
+
$this->end())
|
3002 |
+
{
|
3003 |
+
$name = array("string", "", array($name));
|
3004 |
+
$this->append(array("assign", $name, $value), $s);
|
3005 |
+
return true;
|
3006 |
+
} else {
|
3007 |
+
$this->seek($s);
|
3008 |
+
}
|
3009 |
+
|
3010 |
+
// variable assigns
|
3011 |
+
if ($this->variable($name) &&
|
3012 |
+
$this->literal(":") &&
|
3013 |
+
$this->valueList($value) && $this->end())
|
3014 |
+
{
|
3015 |
+
// check for !default
|
3016 |
+
$defaultVar = $value[0] == "list" && $this->stripDefault($value);
|
3017 |
+
$this->append(array("assign", $name, $value, $defaultVar), $s);
|
3018 |
+
return true;
|
3019 |
+
} else {
|
3020 |
+
$this->seek($s);
|
3021 |
+
}
|
3022 |
+
|
3023 |
+
// misc
|
3024 |
+
if ($this->literal("-->")) {
|
3025 |
+
return true;
|
3026 |
+
}
|
3027 |
+
|
3028 |
+
// opening css block
|
3029 |
+
$oldComments = $this->insertComments;
|
3030 |
+
$this->insertComments = false;
|
3031 |
+
if ($this->selectors($selectors) && $this->literal("{")) {
|
3032 |
+
$this->pushBlock($selectors);
|
3033 |
+
$this->insertComments = $oldComments;
|
3034 |
+
return true;
|
3035 |
+
} else {
|
3036 |
+
$this->seek($s);
|
3037 |
+
}
|
3038 |
+
$this->insertComments = $oldComments;
|
3039 |
+
|
3040 |
+
// property assign, or nested assign
|
3041 |
+
if ($this->propertyName($name) && $this->literal(":")) {
|
3042 |
+
$foundSomething = false;
|
3043 |
+
if ($this->valueList($value)) {
|
3044 |
+
$this->append(array("assign", $name, $value), $s);
|
3045 |
+
$foundSomething = true;
|
3046 |
+
}
|
3047 |
+
|
3048 |
+
if ($this->literal("{")) {
|
3049 |
+
$propBlock = $this->pushSpecialBlock("nestedprop");
|
3050 |
+
$propBlock->prefix = $name;
|
3051 |
+
$foundSomething = true;
|
3052 |
+
} elseif ($foundSomething) {
|
3053 |
+
$foundSomething = $this->end();
|
3054 |
+
}
|
3055 |
+
|
3056 |
+
if ($foundSomething) {
|
3057 |
+
return true;
|
3058 |
+
}
|
3059 |
+
|
3060 |
+
$this->seek($s);
|
3061 |
+
} else {
|
3062 |
+
$this->seek($s);
|
3063 |
+
}
|
3064 |
+
|
3065 |
+
// closing a block
|
3066 |
+
if ($this->literal("}")) {
|
3067 |
+
$block = $this->popBlock();
|
3068 |
+
if (isset($block->type) && $block->type == "include") {
|
3069 |
+
$include = $block->child;
|
3070 |
+
unset($block->child);
|
3071 |
+
$include[3] = $block;
|
3072 |
+
$this->append($include, $s);
|
3073 |
+
} elseif (empty($block->dontAppend)) {
|
3074 |
+
$type = isset($block->type) ? $block->type : "block";
|
3075 |
+
$this->append(array($type, $block), $s);
|
3076 |
+
}
|
3077 |
+
return true;
|
3078 |
+
}
|
3079 |
+
|
3080 |
+
// extra stuff
|
3081 |
+
if ($this->literal(";") ||
|
3082 |
+
$this->literal("<!--"))
|
3083 |
+
{
|
3084 |
+
return true;
|
3085 |
+
}
|
3086 |
+
|
3087 |
+
return false;
|
3088 |
+
}
|
3089 |
+
|
3090 |
+
protected function stripDefault(&$value) {
|
3091 |
+
$def = end($value[2]);
|
3092 |
+
if ($def[0] == "keyword" && $def[1] == "!default") {
|
3093 |
+
array_pop($value[2]);
|
3094 |
+
$value = $this->flattenList($value);
|
3095 |
+
return true;
|
3096 |
+
}
|
3097 |
+
|
3098 |
+
if ($def[0] == "list") {
|
3099 |
+
return $this->stripDefault($value[2][count($value[2]) - 1]);
|
3100 |
+
}
|
3101 |
+
|
3102 |
+
return false;
|
3103 |
+
}
|
3104 |
+
|
3105 |
+
protected function literal($what, $eatWhitespace = null) {
|
3106 |
+
if (!isset($eatWhitespace)) $eatWhitespace = $this->eatWhiteDefault;
|
3107 |
+
|
3108 |
+
// shortcut on single letter
|
3109 |
+
if (!isset($what[1]) && isset($this->buffer[$this->count])) {
|
3110 |
+
if ($this->buffer[$this->count] == $what) {
|
3111 |
+
if (!$eatWhitespace) {
|
3112 |
+
$this->count++;
|
3113 |
+
return true;
|
3114 |
+
}
|
3115 |
+
// goes below...
|
3116 |
+
} else {
|
3117 |
+
return false;
|
3118 |
+
}
|
3119 |
+
}
|
3120 |
+
|
3121 |
+
return $this->match($this->preg_quote($what), $m, $eatWhitespace);
|
3122 |
+
}
|
3123 |
+
|
3124 |
+
// tree builders
|
3125 |
+
|
3126 |
+
protected function pushBlock($selectors) {
|
3127 |
+
$b = new stdClass;
|
3128 |
+
$b->parent = $this->env; // not sure if we need this yet
|
3129 |
+
|
3130 |
+
$b->selectors = $selectors;
|
3131 |
+
$b->children = array();
|
3132 |
+
|
3133 |
+
$this->env = $b;
|
3134 |
+
return $b;
|
3135 |
+
}
|
3136 |
+
|
3137 |
+
protected function pushSpecialBlock($type) {
|
3138 |
+
$block = $this->pushBlock(null);
|
3139 |
+
$block->type = $type;
|
3140 |
+
return $block;
|
3141 |
+
}
|
3142 |
+
|
3143 |
+
protected function popBlock() {
|
3144 |
+
if (empty($this->env->parent)) {
|
3145 |
+
$this->throwParseError("unexpected }");
|
3146 |
+
}
|
3147 |
+
|
3148 |
+
$old = $this->env;
|
3149 |
+
$this->env = $this->env->parent;
|
3150 |
+
unset($old->parent);
|
3151 |
+
return $old;
|
3152 |
+
}
|
3153 |
+
|
3154 |
+
protected function append($statement, $pos=null) {
|
3155 |
+
if ($pos !== null) {
|
3156 |
+
$statement[-1] = $pos;
|
3157 |
+
if (!$this->rootParser) $statement[-2] = $this;
|
3158 |
+
}
|
3159 |
+
$this->env->children[] = $statement;
|
3160 |
+
}
|
3161 |
+
|
3162 |
+
// last child that was appended
|
3163 |
+
protected function last() {
|
3164 |
+
$i = count($this->env->children) - 1;
|
3165 |
+
if (isset($this->env->children[$i]))
|
3166 |
+
return $this->env->children[$i];
|
3167 |
+
}
|
3168 |
+
|
3169 |
+
// high level parsers (they return parts of ast)
|
3170 |
+
|
3171 |
+
protected function mediaQueryList(&$out) {
|
3172 |
+
return $this->genericList($out, "mediaQuery", ",", false);
|
3173 |
+
}
|
3174 |
+
|
3175 |
+
protected function mediaQuery(&$out) {
|
3176 |
+
$s = $this->seek();
|
3177 |
+
|
3178 |
+
$expressions = null;
|
3179 |
+
$parts = array();
|
3180 |
+
|
3181 |
+
if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->mixedKeyword($mediaType)) {
|
3182 |
+
$prop = array("mediaType");
|
3183 |
+
if (isset($only)) $prop[] = array("keyword", "only");
|
3184 |
+
if (isset($not)) $prop[] = array("keyword", "not");
|
3185 |
+
$media = array("list", "", array());
|
3186 |
+
foreach ((array)$mediaType as $type) {
|
3187 |
+
if (is_array($type)) {
|
3188 |
+
$media[2][] = $type;
|
3189 |
+
} else {
|
3190 |
+
$media[2][] = array("keyword", $type);
|
3191 |
+
}
|
3192 |
+
}
|
3193 |
+
$prop[] = $media;
|
3194 |
+
$parts[] = $prop;
|
3195 |
+
}
|
3196 |
+
|
3197 |
+
if (empty($parts) || $this->literal("and")) {
|
3198 |
+
$this->genericList($expressions, "mediaExpression", "and", false);
|
3199 |
+
if (is_array($expressions)) $parts = array_merge($parts, $expressions[2]);
|
3200 |
+
}
|
3201 |
+
|
3202 |
+
$out = $parts;
|
3203 |
+
return true;
|
3204 |
+
}
|
3205 |
+
|
3206 |
+
protected function mediaExpression(&$out) {
|
3207 |
+
$s = $this->seek();
|
3208 |
+
$value = null;
|
3209 |
+
if ($this->literal("(") &&
|
3210 |
+
$this->expression($feature) &&
|
3211 |
+
($this->literal(":") && $this->expression($value) || true) &&
|
3212 |
+
$this->literal(")"))
|
3213 |
+
{
|
3214 |
+
$out = array("mediaExp", $feature);
|
3215 |
+
if ($value) $out[] = $value;
|
3216 |
+
return true;
|
3217 |
+
}
|
3218 |
+
|
3219 |
+
$this->seek($s);
|
3220 |
+
return false;
|
3221 |
+
}
|
3222 |
+
|
3223 |
+
protected function argValues(&$out) {
|
3224 |
+
if ($this->genericList($list, "argValue", ",", false)) {
|
3225 |
+
$out = $list[2];
|
3226 |
+
return true;
|
3227 |
+
}
|
3228 |
+
return false;
|
3229 |
+
}
|
3230 |
+
|
3231 |
+
protected function argValue(&$out) {
|
3232 |
+
$s = $this->seek();
|
3233 |
+
|
3234 |
+
$keyword = null;
|
3235 |
+
if (!$this->variable($keyword) || !$this->literal(":")) {
|
3236 |
+
$this->seek($s);
|
3237 |
+
$keyword = null;
|
3238 |
+
}
|
3239 |
+
|
3240 |
+
if ($this->genericList($value, "expression")) {
|
3241 |
+
$out = array($keyword, $value, false);
|
3242 |
+
$s = $this->seek();
|
3243 |
+
if ($this->literal("...")) {
|
3244 |
+
$out[2] = true;
|
3245 |
+
} else {
|
3246 |
+
$this->seek($s);
|
3247 |
+
}
|
3248 |
+
return true;
|
3249 |
+
}
|
3250 |
+
|
3251 |
+
return false;
|
3252 |
+
}
|
3253 |
+
|
3254 |
+
/**
|
3255 |
+
* Parse list
|
3256 |
+
*
|
3257 |
+
* @param string $out
|
3258 |
+
*
|
3259 |
+
* @return boolean
|
3260 |
+
*/
|
3261 |
+
public function valueList(&$out)
|
3262 |
+
{
|
3263 |
+
return $this->genericList($out, 'spaceList', ',');
|
3264 |
+
}
|
3265 |
+
|
3266 |
+
protected function spaceList(&$out)
|
3267 |
+
{
|
3268 |
+
return $this->genericList($out, 'expression');
|
3269 |
+
}
|
3270 |
+
|
3271 |
+
protected function genericList(&$out, $parseItem, $delim="", $flatten=true) {
|
3272 |
+
$s = $this->seek();
|
3273 |
+
$items = array();
|
3274 |
+
while ($this->$parseItem($value)) {
|
3275 |
+
$items[] = $value;
|
3276 |
+
if ($delim) {
|
3277 |
+
if (!$this->literal($delim)) break;
|
3278 |
+
}
|
3279 |
+
}
|
3280 |
+
|
3281 |
+
if (count($items) == 0) {
|
3282 |
+
$this->seek($s);
|
3283 |
+
return false;
|
3284 |
+
}
|
3285 |
+
|
3286 |
+
if ($flatten && count($items) == 1) {
|
3287 |
+
$out = $items[0];
|
3288 |
+
} else {
|
3289 |
+
$out = array("list", $delim, $items);
|
3290 |
+
}
|
3291 |
+
|
3292 |
+
return true;
|
3293 |
+
}
|
3294 |
+
|
3295 |
+
protected function expression(&$out) {
|
3296 |
+
$s = $this->seek();
|
3297 |
+
|
3298 |
+
if ($this->literal("(")) {
|
3299 |
+
if ($this->literal(")")) {
|
3300 |
+
$out = array("list", "", array());
|
3301 |
+
return true;
|
3302 |
+
}
|
3303 |
+
|
3304 |
+
if ($this->valueList($out) && $this->literal(')') && $out[0] == "list") {
|
3305 |
+
return true;
|
3306 |
+
}
|
3307 |
+
|
3308 |
+
$this->seek($s);
|
3309 |
+
}
|
3310 |
+
|
3311 |
+
if ($this->value($lhs)) {
|
3312 |
+
$out = $this->expHelper($lhs, 0);
|
3313 |
+
return true;
|
3314 |
+
}
|
3315 |
+
|
3316 |
+
return false;
|
3317 |
+
}
|
3318 |
+
|
3319 |
+
protected function expHelper($lhs, $minP) {
|
3320 |
+
$opstr = self::$operatorStr;
|
3321 |
+
|
3322 |
+
$ss = $this->seek();
|
3323 |
+
$whiteBefore = isset($this->buffer[$this->count - 1]) &&
|
3324 |
+
ctype_space($this->buffer[$this->count - 1]);
|
3325 |
+
while ($this->match($opstr, $m) && self::$precedence[$m[1]] >= $minP) {
|
3326 |
+
$whiteAfter = isset($this->buffer[$this->count - 1]) &&
|
3327 |
+
ctype_space($this->buffer[$this->count - 1]);
|
3328 |
+
|
3329 |
+
$op = $m[1];
|
3330 |
+
|
3331 |
+
// don't turn negative numbers into expressions
|
3332 |
+
if ($op == "-" && $whiteBefore) {
|
3333 |
+
if (!$whiteAfter) break;
|
3334 |
+
}
|
3335 |
+
|
3336 |
+
if (!$this->value($rhs)) break;
|
3337 |
+
|
3338 |
+
// peek and see if rhs belongs to next operator
|
3339 |
+
if ($this->peek($opstr, $next) && self::$precedence[$next[1]] > self::$precedence[$op]) {
|
3340 |
+
$rhs = $this->expHelper($rhs, self::$precedence[$next[1]]);
|
3341 |
+
}
|
3342 |
+
|
3343 |
+
$lhs = array("exp", $op, $lhs, $rhs, $this->inParens, $whiteBefore, $whiteAfter);
|
3344 |
+
$ss = $this->seek();
|
3345 |
+
$whiteBefore = isset($this->buffer[$this->count - 1]) &&
|
3346 |
+
ctype_space($this->buffer[$this->count - 1]);
|
3347 |
+
}
|
3348 |
+
|
3349 |
+
$this->seek($ss);
|
3350 |
+
return $lhs;
|
3351 |
+
}
|
3352 |
+
|
3353 |
+
protected function value(&$out) {
|
3354 |
+
$s = $this->seek();
|
3355 |
+
|
3356 |
+
if ($this->literal("not", false) && $this->whitespace() && $this->value($inner)) {
|
3357 |
+
$out = array("unary", "not", $inner, $this->inParens);
|
3358 |
+
return true;
|
3359 |
+
} else {
|
3360 |
+
$this->seek($s);
|
3361 |
+
}
|
3362 |
+
|
3363 |
+
if ($this->literal("+") && $this->value($inner)) {
|
3364 |
+
$out = array("unary", "+", $inner, $this->inParens);
|
3365 |
+
return true;
|
3366 |
+
} else {
|
3367 |
+
$this->seek($s);
|
3368 |
+
}
|
3369 |
+
|
3370 |
+
// negation
|
3371 |
+
if ($this->literal("-", false) &&
|
3372 |
+
($this->variable($inner) ||
|
3373 |
+
$this->unit($inner) ||
|
3374 |
+
$this->parenValue($inner)))
|
3375 |
+
{
|
3376 |
+
$out = array("unary", "-", $inner, $this->inParens);
|
3377 |
+
return true;
|
3378 |
+
} else {
|
3379 |
+
$this->seek($s);
|
3380 |
+
}
|
3381 |
+
|
3382 |
+
if ($this->parenValue($out)) return true;
|
3383 |
+
if ($this->interpolation($out)) return true;
|
3384 |
+
if ($this->variable($out)) return true;
|
3385 |
+
if ($this->color($out)) return true;
|
3386 |
+
if ($this->unit($out)) return true;
|
3387 |
+
if ($this->string($out)) return true;
|
3388 |
+
if ($this->func($out)) return true;
|
3389 |
+
if ($this->progid($out)) return true;
|
3390 |
+
|
3391 |
+
if ($this->keyword($keyword)) {
|
3392 |
+
if ($keyword == "null") {
|
3393 |
+
$out = array("null");
|
3394 |
+
} else {
|
3395 |
+
$out = array("keyword", $keyword);
|
3396 |
+
}
|
3397 |
+
return true;
|
3398 |
+
}
|
3399 |
+
|
3400 |
+
return false;
|
3401 |
+
}
|
3402 |
+
|
3403 |
+
// value wrappen in parentheses
|
3404 |
+
protected function parenValue(&$out) {
|
3405 |
+
$s = $this->seek();
|
3406 |
+
|
3407 |
+
$inParens = $this->inParens;
|
3408 |
+
if ($this->literal("(") &&
|
3409 |
+
($this->inParens = true) && $this->expression($exp) &&
|
3410 |
+
$this->literal(")"))
|
3411 |
+
{
|
3412 |
+
$out = $exp;
|
3413 |
+
$this->inParens = $inParens;
|
3414 |
+
return true;
|
3415 |
+
} else {
|
3416 |
+
$this->inParens = $inParens;
|
3417 |
+
$this->seek($s);
|
3418 |
+
}
|
3419 |
+
|
3420 |
+
return false;
|
3421 |
+
}
|
3422 |
+
|
3423 |
+
protected function progid(&$out) {
|
3424 |
+
$s = $this->seek();
|
3425 |
+
if ($this->literal("progid:", false) &&
|
3426 |
+
$this->openString("(", $fn) &&
|
3427 |
+
$this->literal("("))
|
3428 |
+
{
|
3429 |
+
$this->openString(")", $args, "(");
|
3430 |
+
if ($this->literal(")")) {
|
3431 |
+
$out = array("string", "", array(
|
3432 |
+
"progid:", $fn, "(", $args, ")"
|
3433 |
+
));
|
3434 |
+
return true;
|
3435 |
+
}
|
3436 |
+
}
|
3437 |
+
|
3438 |
+
$this->seek($s);
|
3439 |
+
return false;
|
3440 |
+
}
|
3441 |
+
|
3442 |
+
protected function func(&$func) {
|
3443 |
+
$s = $this->seek();
|
3444 |
+
|
3445 |
+
if ($this->keyword($name, false) &&
|
3446 |
+
$this->literal("("))
|
3447 |
+
{
|
3448 |
+
if ($name == "alpha" && $this->argumentList($args)) {
|
3449 |
+
$func = array("function", $name, array("string", "", $args));
|
3450 |
+
return true;
|
3451 |
+
}
|
3452 |
+
|
3453 |
+
if ($name != "expression" && !preg_match("/^(-[a-z]+-)?calc$/", $name)) {
|
3454 |
+
$ss = $this->seek();
|
3455 |
+
if ($this->argValues($args) && $this->literal(")")) {
|
3456 |
+
$func = array("fncall", $name, $args);
|
3457 |
+
return true;
|
3458 |
+
}
|
3459 |
+
$this->seek($ss);
|
3460 |
+
}
|
3461 |
+
|
3462 |
+
if (($this->openString(")", $str, "(") || true ) &&
|
3463 |
+
$this->literal(")"))
|
3464 |
+
{
|
3465 |
+
$args = array();
|
3466 |
+
if (!empty($str)) {
|
3467 |
+
$args[] = array(null, array("string", "", array($str)));
|
3468 |
+
}
|
3469 |
+
|
3470 |
+
$func = array("fncall", $name, $args);
|
3471 |
+
return true;
|
3472 |
+
}
|
3473 |
+
}
|
3474 |
+
|
3475 |
+
$this->seek($s);
|
3476 |
+
return false;
|
3477 |
+
}
|
3478 |
+
|
3479 |
+
protected function argumentList(&$out) {
|
3480 |
+
$s = $this->seek();
|
3481 |
+
$this->literal("(");
|
3482 |
+
|
3483 |
+
$args = array();
|
3484 |
+
while ($this->keyword($var)) {
|
3485 |
+
$ss = $this->seek();
|
3486 |
+
|
3487 |
+
if ($this->literal("=") && $this->expression($exp)) {
|
3488 |
+
$args[] = array("string", "", array($var."="));
|
3489 |
+
$arg = $exp;
|
3490 |
+
} else {
|
3491 |
+
break;
|
3492 |
+
}
|
3493 |
+
|
3494 |
+
$args[] = $arg;
|
3495 |
+
|
3496 |
+
if (!$this->literal(",")) break;
|
3497 |
+
|
3498 |
+
$args[] = array("string", "", array(", "));
|
3499 |
+
}
|
3500 |
+
|
3501 |
+
if (!$this->literal(")") || !count($args)) {
|
3502 |
+
$this->seek($s);
|
3503 |
+
return false;
|
3504 |
+
}
|
3505 |
+
|
3506 |
+
$out = $args;
|
3507 |
+
return true;
|
3508 |
+
}
|
3509 |
+
|
3510 |
+
protected function argumentDef(&$out) {
|
3511 |
+
$s = $this->seek();
|
3512 |
+
$this->literal("(");
|
3513 |
+
|
3514 |
+
$args = array();
|
3515 |
+
while ($this->variable($var)) {
|
3516 |
+
$arg = array($var[1], null, false);
|
3517 |
+
|
3518 |
+
$ss = $this->seek();
|
3519 |
+
if ($this->literal(":") && $this->genericList($defaultVal, "expression")) {
|
3520 |
+
$arg[1] = $defaultVal;
|
3521 |
+
} else {
|
3522 |
+
$this->seek($ss);
|
3523 |
+
}
|
3524 |
+
|
3525 |
+
$ss = $this->seek();
|
3526 |
+
if ($this->literal("...")) {
|
3527 |
+
$sss = $this->seek();
|
3528 |
+
if (!$this->literal(")")) {
|
3529 |
+
$this->throwParseError("... has to be after the final argument");
|
3530 |
+
}
|
3531 |
+
$arg[2] = true;
|
3532 |
+
$this->seek($sss);
|
3533 |
+
} else {
|
3534 |
+
$this->seek($ss);
|
3535 |
+
}
|
3536 |
+
|
3537 |
+
$args[] = $arg;
|
3538 |
+
if (!$this->literal(",")) break;
|
3539 |
+
}
|
3540 |
+
|
3541 |
+
if (!$this->literal(")")) {
|
3542 |
+
$this->seek($s);
|
3543 |
+
return false;
|
3544 |
+
}
|
3545 |
+
|
3546 |
+
$out = $args;
|
3547 |
+
return true;
|
3548 |
+
}
|
3549 |
+
|
3550 |
+
protected function color(&$out) {
|
3551 |
+
$color = array('color');
|
3552 |
+
|
3553 |
+
if ($this->match('(#([0-9a-f]{6})|#([0-9a-f]{3}))', $m)) {
|
3554 |
+
if (isset($m[3])) {
|
3555 |
+
$num = $m[3];
|
3556 |
+
$width = 16;
|
3557 |
+
} else {
|
3558 |
+
$num = $m[2];
|
3559 |
+
$width = 256;
|
3560 |
+
}
|
3561 |
+
|
3562 |
+
$num = hexdec($num);
|
3563 |
+
foreach (array(3,2,1) as $i) {
|
3564 |
+
$t = $num % $width;
|
3565 |
+
$num /= $width;
|
3566 |
+
|
3567 |
+
$color[$i] = $t * (256/$width) + $t * floor(16/$width);
|
3568 |
+
}
|
3569 |
+
|
3570 |
+
$out = $color;
|
3571 |
+
return true;
|
3572 |
+
}
|
3573 |
+
|
3574 |
+
return false;
|
3575 |
+
}
|
3576 |
+
|
3577 |
+
protected function unit(&$unit) {
|
3578 |
+
if ($this->match('([0-9]*(\.)?[0-9]+)([%a-zA-Z]+)?', $m)) {
|
3579 |
+
$unit = array("number", $m[1], empty($m[3]) ? "" : $m[3]);
|
3580 |
+
return true;
|
3581 |
+
}
|
3582 |
+
return false;
|
3583 |
+
}
|
3584 |
+
|
3585 |
+
protected function string(&$out) {
|
3586 |
+
$s = $this->seek();
|
3587 |
+
if ($this->literal('"', false)) {
|
3588 |
+
$delim = '"';
|
3589 |
+
} elseif ($this->literal("'", false)) {
|
3590 |
+
$delim = "'";
|
3591 |
+
} else {
|
3592 |
+
return false;
|
3593 |
+
}
|
3594 |
+
|
3595 |
+
$content = array();
|
3596 |
+
$oldWhite = $this->eatWhiteDefault;
|
3597 |
+
$this->eatWhiteDefault = false;
|
3598 |
+
|
3599 |
+
while ($this->matchString($m, $delim)) {
|
3600 |
+
$content[] = $m[1];
|
3601 |
+
if ($m[2] == "#{") {
|
3602 |
+
$this->count -= strlen($m[2]);
|
3603 |
+
if ($this->interpolation($inter, false)) {
|
3604 |
+
$content[] = $inter;
|
3605 |
+
} else {
|
3606 |
+
$this->count += strlen($m[2]);
|
3607 |
+
$content[] = "#{"; // ignore it
|
3608 |
+
}
|
3609 |
+
} elseif ($m[2] == '\\') {
|
3610 |
+
$content[] = $m[2];
|
3611 |
+
if ($this->literal($delim, false)) {
|
3612 |
+
$content[] = $delim;
|
3613 |
+
}
|
3614 |
+
} else {
|
3615 |
+
$this->count -= strlen($delim);
|
3616 |
+
break; // delim
|
3617 |
+
}
|
3618 |
+
}
|
3619 |
+
|
3620 |
+
$this->eatWhiteDefault = $oldWhite;
|
3621 |
+
|
3622 |
+
if ($this->literal($delim)) {
|
3623 |
+
$out = array("string", $delim, $content);
|
3624 |
+
return true;
|
3625 |
+
}
|
3626 |
+
|
3627 |
+
$this->seek($s);
|
3628 |
+
return false;
|
3629 |
+
}
|
3630 |
+
|
3631 |
+
protected function mixedKeyword(&$out) {
|
3632 |
+
$s = $this->seek();
|
3633 |
+
|
3634 |
+
$parts = array();
|
3635 |
+
|
3636 |
+
$oldWhite = $this->eatWhiteDefault;
|
3637 |
+
$this->eatWhiteDefault = false;
|
3638 |
+
|
3639 |
+
while (true) {
|
3640 |
+
if ($this->keyword($key)) {
|
3641 |
+
$parts[] = $key;
|
3642 |
+
continue;
|
3643 |
+
}
|
3644 |
+
|
3645 |
+
if ($this->interpolation($inter)) {
|
3646 |
+
$parts[] = $inter;
|
3647 |
+
continue;
|
3648 |
+
}
|
3649 |
+
|
3650 |
+
break;
|
3651 |
+
}
|
3652 |
+
|
3653 |
+
$this->eatWhiteDefault = $oldWhite;
|
3654 |
+
|
3655 |
+
if (count($parts) == 0) return false;
|
3656 |
+
|
3657 |
+
if ($this->eatWhiteDefault) {
|
3658 |
+
$this->whitespace();
|
3659 |
+
}
|
3660 |
+
|
3661 |
+
$out = $parts;
|
3662 |
+
return true;
|
3663 |
+
}
|
3664 |
+
|
3665 |
+
// an unbounded string stopped by $end
|
3666 |
+
protected function openString($end, &$out, $nestingOpen=null) {
|
3667 |
+
$oldWhite = $this->eatWhiteDefault;
|
3668 |
+
$this->eatWhiteDefault = false;
|
3669 |
+
|
3670 |
+
$stop = array("'", '"', "#{", $end);
|
3671 |
+
$stop = array_map(array($this, "preg_quote"), $stop);
|
3672 |
+
$stop[] = self::$commentMulti;
|
3673 |
+
|
3674 |
+
$patt = '(.*?)('.implode("|", $stop).')';
|
3675 |
+
|
3676 |
+
$nestingLevel = 0;
|
3677 |
+
|
3678 |
+
$content = array();
|
3679 |
+
while ($this->match($patt, $m, false)) {
|
3680 |
+
if (isset($m[1]) && $m[1] !== '') {
|
3681 |
+
$content[] = $m[1];
|
3682 |
+
if ($nestingOpen) {
|
3683 |
+
$nestingLevel += substr_count($m[1], $nestingOpen);
|
3684 |
+
}
|
3685 |
+
}
|
3686 |
+
|
3687 |
+
$tok = $m[2];
|
3688 |
+
|
3689 |
+
$this->count-= strlen($tok);
|
3690 |
+
if ($tok == $end) {
|
3691 |
+
if ($nestingLevel == 0) {
|
3692 |
+
break;
|
3693 |
+
} else {
|
3694 |
+
$nestingLevel--;
|
3695 |
+
}
|
3696 |
+
}
|
3697 |
+
|
3698 |
+
if (($tok == "'" || $tok == '"') && $this->string($str)) {
|
3699 |
+
$content[] = $str;
|
3700 |
+
continue;
|
3701 |
+
}
|
3702 |
+
|
3703 |
+
if ($tok == "#{" && $this->interpolation($inter)) {
|
3704 |
+
$content[] = $inter;
|
3705 |
+
continue;
|
3706 |
+
}
|
3707 |
+
|
3708 |
+
$content[] = $tok;
|
3709 |
+
$this->count+= strlen($tok);
|
3710 |
+
}
|
3711 |
+
|
3712 |
+
$this->eatWhiteDefault = $oldWhite;
|
3713 |
+
|
3714 |
+
if (count($content) == 0) return false;
|
3715 |
+
|
3716 |
+
// trim the end
|
3717 |
+
if (is_string(end($content))) {
|
3718 |
+
$content[count($content) - 1] = rtrim(end($content));
|
3719 |
+
}
|
3720 |
+
|
3721 |
+
$out = array("string", "", $content);
|
3722 |
+
return true;
|
3723 |
+
}
|
3724 |
+
|
3725 |
+
// $lookWhite: save information about whitespace before and after
|
3726 |
+
protected function interpolation(&$out, $lookWhite=true) {
|
3727 |
+
$oldWhite = $this->eatWhiteDefault;
|
3728 |
+
$this->eatWhiteDefault = true;
|
3729 |
+
|
3730 |
+
$s = $this->seek();
|
3731 |
+
if ($this->literal("#{") && $this->valueList($value) && $this->literal("}", false)) {
|
3732 |
+
|
3733 |
+
// TODO: don't error if out of bounds
|
3734 |
+
|
3735 |
+
if ($lookWhite) {
|
3736 |
+
$left = preg_match('/\s/', $this->buffer[$s - 1]) ? " " : "";
|
3737 |
+
$right = preg_match('/\s/', $this->buffer[$this->count]) ? " ": "";
|
3738 |
+
} else {
|
3739 |
+
$left = $right = false;
|
3740 |
+
}
|
3741 |
+
|
3742 |
+
$out = array("interpolate", $value, $left, $right);
|
3743 |
+
$this->eatWhiteDefault = $oldWhite;
|
3744 |
+
if ($this->eatWhiteDefault) $this->whitespace();
|
3745 |
+
return true;
|
3746 |
+
}
|
3747 |
+
|
3748 |
+
$this->seek($s);
|
3749 |
+
$this->eatWhiteDefault = $oldWhite;
|
3750 |
+
return false;
|
3751 |
+
}
|
3752 |
+
|
3753 |
+
// low level parsers
|
3754 |
+
|
3755 |
+
// returns an array of parts or a string
|
3756 |
+
protected function propertyName(&$out) {
|
3757 |
+
$s = $this->seek();
|
3758 |
+
$parts = array();
|
3759 |
+
|
3760 |
+
$oldWhite = $this->eatWhiteDefault;
|
3761 |
+
$this->eatWhiteDefault = false;
|
3762 |
+
|
3763 |
+
while (true) {
|
3764 |
+
if ($this->interpolation($inter)) {
|
3765 |
+
$parts[] = $inter;
|
3766 |
+
} elseif ($this->keyword($text)) {
|
3767 |
+
$parts[] = $text;
|
3768 |
+
} elseif (count($parts) == 0 && $this->match('[:.#]', $m, false)) {
|
3769 |
+
// css hacks
|
3770 |
+
$parts[] = $m[0];
|
3771 |
+
} else {
|
3772 |
+
break;
|
3773 |
+
}
|
3774 |
+
}
|
3775 |
+
|
3776 |
+
$this->eatWhiteDefault = $oldWhite;
|
3777 |
+
if (count($parts) == 0) return false;
|
3778 |
+
|
3779 |
+
// match comment hack
|
3780 |
+
if (preg_match(self::$whitePattern,
|
3781 |
+
$this->buffer, $m, null, $this->count))
|
3782 |
+
{
|
3783 |
+
if (!empty($m[0])) {
|
3784 |
+
$parts[] = $m[0];
|
3785 |
+
$this->count += strlen($m[0]);
|
3786 |
+
}
|
3787 |
+
}
|
3788 |
+
|
3789 |
+
$this->whitespace(); // get any extra whitespace
|
3790 |
+
|
3791 |
+
$out = array("string", "", $parts);
|
3792 |
+
return true;
|
3793 |
+
}
|
3794 |
+
|
3795 |
+
// comma separated list of selectors
|
3796 |
+
protected function selectors(&$out) {
|
3797 |
+
$s = $this->seek();
|
3798 |
+
$selectors = array();
|
3799 |
+
while ($this->selector($sel)) {
|
3800 |
+
$selectors[] = $sel;
|
3801 |
+
if (!$this->literal(",")) break;
|
3802 |
+
while ($this->literal(",")); // ignore extra
|
3803 |
+
}
|
3804 |
+
|
3805 |
+
if (count($selectors) == 0) {
|
3806 |
+
$this->seek($s);
|
3807 |
+
return false;
|
3808 |
+
}
|
3809 |
+
|
3810 |
+
$out = $selectors;
|
3811 |
+
return true;
|
3812 |
+
}
|
3813 |
+
|
3814 |
+
// whitespace separated list of selectorSingle
|
3815 |
+
protected function selector(&$out) {
|
3816 |
+
$selector = array();
|
3817 |
+
|
3818 |
+
while (true) {
|
3819 |
+
if ($this->match('[>+~]+', $m)) {
|
3820 |
+
$selector[] = array($m[0]);
|
3821 |
+
} elseif ($this->selectorSingle($part)) {
|
3822 |
+
$selector[] = $part;
|
3823 |
+
$this->whitespace();
|
3824 |
+
} elseif ($this->match('\/[^\/]+\/', $m)) {
|
3825 |
+
$selector[] = array($m[0]);
|
3826 |
+
} else {
|
3827 |
+
break;
|
3828 |
+
}
|
3829 |
+
|
3830 |
+
}
|
3831 |
+
|
3832 |
+
if (count($selector) == 0) {
|
3833 |
+
return false;
|
3834 |
+
}
|
3835 |
+
|
3836 |
+
$out = $selector;
|
3837 |
+
return true;
|
3838 |
+
}
|
3839 |
+
|
3840 |
+
// the parts that make up
|
3841 |
+
// div[yes=no]#something.hello.world:nth-child(-2n+1)%placeholder
|
3842 |
+
protected function selectorSingle(&$out) {
|
3843 |
+
$oldWhite = $this->eatWhiteDefault;
|
3844 |
+
$this->eatWhiteDefault = false;
|
3845 |
+
|
3846 |
+
$parts = array();
|
3847 |
+
|
3848 |
+
if ($this->literal("*", false)) {
|
3849 |
+
$parts[] = "*";
|
3850 |
+
}
|
3851 |
+
|
3852 |
+
while (true) {
|
3853 |
+
// see if we can stop early
|
3854 |
+
if ($this->match("\s*[{,]", $m)) {
|
3855 |
+
$this->count--;
|
3856 |
+
break;
|
3857 |
+
}
|
3858 |
+
|
3859 |
+
$s = $this->seek();
|
3860 |
+
// self
|
3861 |
+
if ($this->literal("&", false)) {
|
3862 |
+
$parts[] = scssc_free::$selfSelector;
|
3863 |
+
continue;
|
3864 |
+
}
|
3865 |
+
|
3866 |
+
if ($this->literal(".", false)) {
|
3867 |
+
$parts[] = ".";
|
3868 |
+
continue;
|
3869 |
+
}
|
3870 |
+
|
3871 |
+
if ($this->literal("|", false)) {
|
3872 |
+
$parts[] = "|";
|
3873 |
+
continue;
|
3874 |
+
}
|
3875 |
+
|
3876 |
+
// for keyframes
|
3877 |
+
if ($this->unit($unit)) {
|
3878 |
+
$parts[] = $unit;
|
3879 |
+
continue;
|
3880 |
+
}
|
3881 |
+
|
3882 |
+
if ($this->keyword($name)) {
|
3883 |
+
$parts[] = $name;
|
3884 |
+
continue;
|
3885 |
+
}
|
3886 |
+
|
3887 |
+
if ($this->interpolation($inter)) {
|
3888 |
+
$parts[] = $inter;
|
3889 |
+
continue;
|
3890 |
+
}
|
3891 |
+
|
3892 |
+
if ($this->literal('%', false) && $this->placeholder($placeholder)) {
|
3893 |
+
$parts[] = '%';
|
3894 |
+
$parts[] = $placeholder;
|
3895 |
+
continue;
|
3896 |
+
}
|
3897 |
+
|
3898 |
+
if ($this->literal("#", false)) {
|
3899 |
+
$parts[] = "#";
|
3900 |
+
continue;
|
3901 |
+
}
|
3902 |
+
|
3903 |
+
// a pseudo selector
|
3904 |
+
if ($this->match("::?", $m) && $this->mixedKeyword($nameParts)) {
|
3905 |
+
$parts[] = $m[0];
|
3906 |
+
foreach ($nameParts as $sub) {
|
3907 |
+
$parts[] = $sub;
|
3908 |
+
}
|
3909 |
+
|
3910 |
+
$ss = $this->seek();
|
3911 |
+
if ($this->literal("(") &&
|
3912 |
+
($this->openString(")", $str, "(") || true ) &&
|
3913 |
+
$this->literal(")"))
|
3914 |
+
{
|
3915 |
+
$parts[] = "(";
|
3916 |
+
if (!empty($str)) $parts[] = $str;
|
3917 |
+
$parts[] = ")";
|
3918 |
+
} else {
|
3919 |
+
$this->seek($ss);
|
3920 |
+
}
|
3921 |
+
|
3922 |
+
continue;
|
3923 |
+
} else {
|
3924 |
+
$this->seek($s);
|
3925 |
+
}
|
3926 |
+
|
3927 |
+
// attribute selector
|
3928 |
+
// TODO: replace with open string?
|
3929 |
+
if ($this->literal("[", false)) {
|
3930 |
+
$attrParts = array("[");
|
3931 |
+
// keyword, string, operator
|
3932 |
+
while (true) {
|
3933 |
+
if ($this->literal("]", false)) {
|
3934 |
+
$this->count--;
|
3935 |
+
break; // get out early
|
3936 |
+
}
|
3937 |
+
|
3938 |
+
if ($this->match('\s+', $m)) {
|
3939 |
+
$attrParts[] = " ";
|
3940 |
+
continue;
|
3941 |
+
}
|
3942 |
+
if ($this->string($str)) {
|
3943 |
+
$attrParts[] = $str;
|
3944 |
+
continue;
|
3945 |
+
}
|
3946 |
+
|
3947 |
+
if ($this->keyword($word)) {
|
3948 |
+
$attrParts[] = $word;
|
3949 |
+
continue;
|
3950 |
+
}
|
3951 |
+
|
3952 |
+
if ($this->interpolation($inter, false)) {
|
3953 |
+
$attrParts[] = $inter;
|
3954 |
+
continue;
|
3955 |
+
}
|
3956 |
+
|
3957 |
+
// operator, handles attr namespace too
|
3958 |
+
if ($this->match('[|-~\$\*\^=]+', $m)) {
|
3959 |
+
$attrParts[] = $m[0];
|
3960 |
+
continue;
|
3961 |
+
}
|
3962 |
+
|
3963 |
+
break;
|
3964 |
+
}
|
3965 |
+
|
3966 |
+
if ($this->literal("]", false)) {
|
3967 |
+
$attrParts[] = "]";
|
3968 |
+
foreach ($attrParts as $part) {
|
3969 |
+
$parts[] = $part;
|
3970 |
+
}
|
3971 |
+
continue;
|
3972 |
+
}
|
3973 |
+
$this->seek($s);
|
3974 |
+
// should just break here?
|
3975 |
+
}
|
3976 |
+
|
3977 |
+
break;
|
3978 |
+
}
|
3979 |
+
|
3980 |
+
$this->eatWhiteDefault = $oldWhite;
|
3981 |
+
|
3982 |
+
if (count($parts) == 0) return false;
|
3983 |
+
|
3984 |
+
$out = $parts;
|
3985 |
+
return true;
|
3986 |
+
}
|
3987 |
+
|
3988 |
+
protected function variable(&$out) {
|
3989 |
+
$s = $this->seek();
|
3990 |
+
if ($this->literal("$", false) && $this->keyword($name)) {
|
3991 |
+
$out = array("var", $name);
|
3992 |
+
return true;
|
3993 |
+
}
|
3994 |
+
$this->seek($s);
|
3995 |
+
return false;
|
3996 |
+
}
|
3997 |
+
|
3998 |
+
protected function keyword(&$word, $eatWhitespace = null) {
|
3999 |
+
if ($this->match('([\w_\-\*!"\'\\\\][\w\-_"\'\\\\]*)',
|
4000 |
+
$m, $eatWhitespace))
|
4001 |
+
{
|
4002 |
+
$word = $m[1];
|
4003 |
+
return true;
|
4004 |
+
}
|
4005 |
+
return false;
|
4006 |
+
}
|
4007 |
+
|
4008 |
+
protected function placeholder(&$placeholder) {
|
4009 |
+
if ($this->match('([\w\-_]+)', $m)) {
|
4010 |
+
$placeholder = $m[1];
|
4011 |
+
return true;
|
4012 |
+
}
|
4013 |
+
return false;
|
4014 |
+
}
|
4015 |
+
|
4016 |
+
// consume an end of statement delimiter
|
4017 |
+
protected function end() {
|
4018 |
+
if ($this->literal(';')) {
|
4019 |
+
return true;
|
4020 |
+
} elseif ($this->count == strlen($this->buffer) || $this->buffer[$this->count] == '}') {
|
4021 |
+
// if there is end of file or a closing block next then we don't need a ;
|
4022 |
+
return true;
|
4023 |
+
}
|
4024 |
+
return false;
|
4025 |
+
}
|
4026 |
+
|
4027 |
+
// advance counter to next occurrence of $what
|
4028 |
+
// $until - don't include $what in advance
|
4029 |
+
// $allowNewline, if string, will be used as valid char set
|
4030 |
+
protected function to($what, &$out, $until = false, $allowNewline = false) {
|
4031 |
+
if (is_string($allowNewline)) {
|
4032 |
+
$validChars = $allowNewline;
|
4033 |
+
} else {
|
4034 |
+
$validChars = $allowNewline ? "." : "[^\n]";
|
4035 |
+
}
|
4036 |
+
if (!$this->match('('.$validChars.'*?)'.$this->preg_quote($what), $m, !$until)) return false;
|
4037 |
+
if ($until) $this->count -= strlen($what); // give back $what
|
4038 |
+
$out = $m[1];
|
4039 |
+
return true;
|
4040 |
+
}
|
4041 |
+
|
4042 |
+
public function throwParseError($msg = "parse error", $count = null) {
|
4043 |
+
$count = !isset($count) ? $this->count : $count;
|
4044 |
+
|
4045 |
+
$line = $this->getLineNo($count);
|
4046 |
+
|
4047 |
+
if (!empty($this->sourceName)) {
|
4048 |
+
$loc = "$this->sourceName on line $line";
|
4049 |
+
} else {
|
4050 |
+
$loc = "line: $line";
|
4051 |
+
}
|
4052 |
+
|
4053 |
+
if ($this->peek("(.*?)(\n|$)", $m, $count)) {
|
4054 |
+
throw new Exception("$msg: failed at `$m[1]` $loc");
|
4055 |
+
} else {
|
4056 |
+
throw new Exception("$msg: $loc");
|
4057 |
+
}
|
4058 |
+
}
|
4059 |
+
|
4060 |
+
public function getLineNo($pos) {
|
4061 |
+
return 1 + substr_count(substr($this->buffer, 0, $pos), "\n");
|
4062 |
+
}
|
4063 |
+
|
4064 |
+
/**
|
4065 |
+
* Match string looking for either ending delim, escape, or string interpolation
|
4066 |
+
*
|
4067 |
+
* {@internal This is a workaround for preg_match's 250K string match limit. }}
|
4068 |
+
*
|
4069 |
+
* @param array $m Matches (passed by reference)
|
4070 |
+
* @param string $delim Delimeter
|
4071 |
+
*
|
4072 |
+
* @return boolean True if match; false otherwise
|
4073 |
+
*/
|
4074 |
+
protected function matchString(&$m, $delim) {
|
4075 |
+
$token = null;
|
4076 |
+
|
4077 |
+
$end = strpos($this->buffer, "\n", $this->count);
|
4078 |
+
if ($end === false || $this->buffer[$end - 1] == '\\' || $this->buffer[$end - 2] == '\\' && $this->buffer[$end - 1] == "\r") {
|
4079 |
+
$end = strlen($this->buffer);
|
4080 |
+
}
|
4081 |
+
|
4082 |
+
// look for either ending delim, escape, or string interpolation
|
4083 |
+
foreach (array('#{', '\\', $delim) as $lookahead) {
|
4084 |
+
$pos = strpos($this->buffer, $lookahead, $this->count);
|
4085 |
+
if ($pos !== false && $pos < $end) {
|
4086 |
+
$end = $pos;
|
4087 |
+
$token = $lookahead;
|
4088 |
+
}
|
4089 |
+
}
|
4090 |
+
|
4091 |
+
if (!isset($token)) {
|
4092 |
+
return false;
|
4093 |
+
}
|
4094 |
+
|
4095 |
+
$match = substr($this->buffer, $this->count, $end - $this->count);
|
4096 |
+
$m = array(
|
4097 |
+
$match . $token,
|
4098 |
+
$match,
|
4099 |
+
$token
|
4100 |
+
);
|
4101 |
+
$this->count = $end + strlen($token);
|
4102 |
+
|
4103 |
+
return true;
|
4104 |
+
}
|
4105 |
+
|
4106 |
+
// try to match something on head of buffer
|
4107 |
+
protected function match($regex, &$out, $eatWhitespace = null) {
|
4108 |
+
if (!isset($eatWhitespace)) $eatWhitespace = $this->eatWhiteDefault;
|
4109 |
+
|
4110 |
+
$r = '/'.$regex.'/Ais';
|
4111 |
+
if (preg_match($r, $this->buffer, $out, null, $this->count)) {
|
4112 |
+
$this->count += strlen($out[0]);
|
4113 |
+
if ($eatWhitespace) $this->whitespace();
|
4114 |
+
return true;
|
4115 |
+
}
|
4116 |
+
return false;
|
4117 |
+
}
|
4118 |
+
|
4119 |
+
// match some whitespace
|
4120 |
+
protected function whitespace() {
|
4121 |
+
$gotWhite = false;
|
4122 |
+
while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) {
|
4123 |
+
if ($this->insertComments) {
|
4124 |
+
if (isset($m[1]) && empty($this->commentsSeen[$this->count])) {
|
4125 |
+
$this->append(array("comment", $m[1]));
|
4126 |
+
$this->commentsSeen[$this->count] = true;
|
4127 |
+
}
|
4128 |
+
}
|
4129 |
+
$this->count += strlen($m[0]);
|
4130 |
+
$gotWhite = true;
|
4131 |
+
}
|
4132 |
+
return $gotWhite;
|
4133 |
+
}
|
4134 |
+
|
4135 |
+
protected function peek($regex, &$out, $from=null) {
|
4136 |
+
if (!isset($from)) $from = $this->count;
|
4137 |
+
|
4138 |
+
$r = '/'.$regex.'/Ais';
|
4139 |
+
$result = preg_match($r, $this->buffer, $out, null, $from);
|
4140 |
+
|
4141 |
+
return $result;
|
4142 |
+
}
|
4143 |
+
|
4144 |
+
protected function seek($where = null) {
|
4145 |
+
if ($where === null) return $this->count;
|
4146 |
+
else $this->count = $where;
|
4147 |
+
return true;
|
4148 |
+
}
|
4149 |
+
|
4150 |
+
static function preg_quote($what) {
|
4151 |
+
return preg_quote($what, '/');
|
4152 |
+
}
|
4153 |
+
|
4154 |
+
protected function show() {
|
4155 |
+
if ($this->peek("(.*?)(\n|$)", $m, $this->count)) {
|
4156 |
+
return $m[1];
|
4157 |
+
}
|
4158 |
+
return "";
|
4159 |
+
}
|
4160 |
+
|
4161 |
+
// turn list of length 1 into value type
|
4162 |
+
protected function flattenList($value) {
|
4163 |
+
if ($value[0] == "list" && count($value[2]) == 1) {
|
4164 |
+
return $this->flattenList($value[2][0]);
|
4165 |
+
}
|
4166 |
+
return $value;
|
4167 |
+
}
|
4168 |
+
}
|
4169 |
+
|
4170 |
+
/**
|
4171 |
+
* SCSS base formatter
|
4172 |
+
*
|
4173 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
4174 |
+
*/
|
4175 |
+
class scss_formatter_free {
|
4176 |
+
public $indentChar = " ";
|
4177 |
+
|
4178 |
+
public $break = "\n";
|
4179 |
+
public $open = " {";
|
4180 |
+
public $close = "}";
|
4181 |
+
public $tagSeparator = ", ";
|
4182 |
+
public $assignSeparator = ": ";
|
4183 |
+
|
4184 |
+
public function __construct() {
|
4185 |
+
$this->indentLevel = 0;
|
4186 |
+
}
|
4187 |
+
|
4188 |
+
public function indentStr($n = 0) {
|
4189 |
+
return str_repeat($this->indentChar, max($this->indentLevel + $n, 0));
|
4190 |
+
}
|
4191 |
+
|
4192 |
+
public function property($name, $value) {
|
4193 |
+
return $name . $this->assignSeparator . $value . ";";
|
4194 |
+
}
|
4195 |
+
|
4196 |
+
protected function block($block) {
|
4197 |
+
if (empty($block->lines) && empty($block->children)) return;
|
4198 |
+
|
4199 |
+
$inner = $pre = $this->indentStr();
|
4200 |
+
|
4201 |
+
if (!empty($block->selectors)) {
|
4202 |
+
echo $pre .
|
4203 |
+
implode($this->tagSeparator, $block->selectors) .
|
4204 |
+
$this->open . $this->break;
|
4205 |
+
$this->indentLevel++;
|
4206 |
+
$inner = $this->indentStr();
|
4207 |
+
}
|
4208 |
+
|
4209 |
+
if (!empty($block->lines)) {
|
4210 |
+
$glue = $this->break.$inner;
|
4211 |
+
echo $inner . implode($glue, $block->lines);
|
4212 |
+
if (!empty($block->children)) {
|
4213 |
+
echo $this->break;
|
4214 |
+
}
|
4215 |
+
}
|
4216 |
+
|
4217 |
+
foreach ($block->children as $child) {
|
4218 |
+
$this->block($child);
|
4219 |
+
}
|
4220 |
+
|
4221 |
+
if (!empty($block->selectors)) {
|
4222 |
+
$this->indentLevel--;
|
4223 |
+
if (empty($block->children)) echo $this->break;
|
4224 |
+
echo $pre . $this->close . $this->break;
|
4225 |
+
}
|
4226 |
+
}
|
4227 |
+
|
4228 |
+
public function format($block) {
|
4229 |
+
ob_start();
|
4230 |
+
$this->block($block);
|
4231 |
+
$out = ob_get_clean();
|
4232 |
+
|
4233 |
+
return $out;
|
4234 |
+
}
|
4235 |
+
}
|
4236 |
+
|
4237 |
+
/**
|
4238 |
+
* SCSS nested formatter
|
4239 |
+
*
|
4240 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
4241 |
+
*/
|
4242 |
+
class scss_formatter_nested_free extends scss_formatter_free {
|
4243 |
+
public $close = " }";
|
4244 |
+
|
4245 |
+
// adjust the depths of all children, depth first
|
4246 |
+
public function adjustAllChildren($block) {
|
4247 |
+
// flatten empty nested blocks
|
4248 |
+
$children = array();
|
4249 |
+
foreach ($block->children as $i => $child) {
|
4250 |
+
if (empty($child->lines) && empty($child->children)) {
|
4251 |
+
if (isset($block->children[$i + 1])) {
|
4252 |
+
$block->children[$i + 1]->depth = $child->depth;
|
4253 |
+
}
|
4254 |
+
continue;
|
4255 |
+
}
|
4256 |
+
$children[] = $child;
|
4257 |
+
}
|
4258 |
+
|
4259 |
+
$count = count($children);
|
4260 |
+
for ($i = 0; $i < $count; $i++) {
|
4261 |
+
$depth = $children[$i]->depth;
|
4262 |
+
$j = $i + 1;
|
4263 |
+
if (isset($children[$j]) && $depth < $children[$j]->depth) {
|
4264 |
+
$childDepth = $children[$j]->depth;
|
4265 |
+
for (; $j < $count; $j++) {
|
4266 |
+
if ($depth < $children[$j]->depth && $childDepth >= $children[$j]->depth) {
|
4267 |
+
$children[$j]->depth = $depth + 1;
|
4268 |
+
}
|
4269 |
+
}
|
4270 |
+
}
|
4271 |
+
}
|
4272 |
+
|
4273 |
+
$block->children = $children;
|
4274 |
+
|
4275 |
+
// make relative to parent
|
4276 |
+
foreach ($block->children as $child) {
|
4277 |
+
$this->adjustAllChildren($child);
|
4278 |
+
$child->depth = $child->depth - $block->depth;
|
4279 |
+
}
|
4280 |
+
}
|
4281 |
+
|
4282 |
+
protected function block($block) {
|
4283 |
+
if ($block->type == "root") {
|
4284 |
+
$this->adjustAllChildren($block);
|
4285 |
+
}
|
4286 |
+
|
4287 |
+
$inner = $pre = $this->indentStr($block->depth - 1);
|
4288 |
+
if (!empty($block->selectors)) {
|
4289 |
+
echo $pre .
|
4290 |
+
implode($this->tagSeparator, $block->selectors) .
|
4291 |
+
$this->open . $this->break;
|
4292 |
+
$this->indentLevel++;
|
4293 |
+
$inner = $this->indentStr($block->depth - 1);
|
4294 |
+
}
|
4295 |
+
|
4296 |
+
if (!empty($block->lines)) {
|
4297 |
+
$glue = $this->break.$inner;
|
4298 |
+
echo $inner . implode($glue, $block->lines);
|
4299 |
+
if (!empty($block->children)) echo $this->break;
|
4300 |
+
}
|
4301 |
+
|
4302 |
+
foreach ($block->children as $i => $child) {
|
4303 |
+
// echo "*** block: ".$block->depth." child: ".$child->depth."\n";
|
4304 |
+
$this->block($child);
|
4305 |
+
if ($i < count($block->children) - 1) {
|
4306 |
+
echo $this->break;
|
4307 |
+
|
4308 |
+
if (isset($block->children[$i + 1])) {
|
4309 |
+
$next = $block->children[$i + 1];
|
4310 |
+
if ($next->depth == max($block->depth, 1) && $child->depth >= $next->depth) {
|
4311 |
+
echo $this->break;
|
4312 |
+
}
|
4313 |
+
}
|
4314 |
+
}
|
4315 |
+
}
|
4316 |
+
|
4317 |
+
if (!empty($block->selectors)) {
|
4318 |
+
$this->indentLevel--;
|
4319 |
+
echo $this->close;
|
4320 |
+
}
|
4321 |
+
|
4322 |
+
if ($block->type == "root") {
|
4323 |
+
echo $this->break;
|
4324 |
+
}
|
4325 |
+
}
|
4326 |
+
}
|
4327 |
+
|
4328 |
+
/**
|
4329 |
+
* SCSS compressed formatter
|
4330 |
+
*
|
4331 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
4332 |
+
*/
|
4333 |
+
class scss_formatter_compressed_free extends scss_formatter_free {
|
4334 |
+
public $open = "{";
|
4335 |
+
public $tagSeparator = ",";
|
4336 |
+
public $assignSeparator = ":";
|
4337 |
+
public $break = "";
|
4338 |
+
|
4339 |
+
public function indentStr($n = 0) {
|
4340 |
+
return "";
|
4341 |
+
}
|
4342 |
+
}
|
4343 |
+
|
4344 |
+
/**
|
4345 |
+
* SCSS server
|
4346 |
+
*
|
4347 |
+
* @author Leaf Corcoran <leafot@gmail.com>
|
4348 |
+
*/
|
4349 |
+
class scss_server_free {
|
4350 |
+
/**
|
4351 |
+
* Join path components
|
4352 |
+
*
|
4353 |
+
* @param string $left Path component, left of the directory separator
|
4354 |
+
* @param string $right Path component, right of the directory separator
|
4355 |
+
*
|
4356 |
+
* @return string
|
4357 |
+
*/
|
4358 |
+
protected function join($left, $right) {
|
4359 |
+
return rtrim($left, '/\\') . DIRECTORY_SEPARATOR . ltrim($right, '/\\');
|
4360 |
+
}
|
4361 |
+
|
4362 |
+
/**
|
4363 |
+
* Get name of requested .scss file
|
4364 |
+
*
|
4365 |
+
* @return string|null
|
4366 |
+
*/
|
4367 |
+
protected function inputName() {
|
4368 |
+
switch (true) {
|
4369 |
+
case isset($_GET['p']):
|
4370 |
+
return $_GET['p'];
|
4371 |
+
case isset($_SERVER['PATH_INFO']):
|
4372 |
+
return $_SERVER['PATH_INFO'];
|
4373 |
+
case isset($_SERVER['DOCUMENT_URI']):
|
4374 |
+
return substr($_SERVER['DOCUMENT_URI'], strlen($_SERVER['SCRIPT_NAME']));
|
4375 |
+
}
|
4376 |
+
}
|
4377 |
+
|
4378 |
+
/**
|
4379 |
+
* Get path to requested .scss file
|
4380 |
+
*
|
4381 |
+
* @return string
|
4382 |
+
*/
|
4383 |
+
protected function findInput() {
|
4384 |
+
if (($input = $this->inputName())
|
4385 |
+
&& strpos($input, '..') === false
|
4386 |
+
&& substr($input, -5) === '.scss'
|
4387 |
+
) {
|
4388 |
+
$name = $this->join($this->dir, $input);
|
4389 |
+
|
4390 |
+
if (is_file($name) && is_readable($name)) {
|
4391 |
+
return $name;
|
4392 |
+
}
|
4393 |
+
}
|
4394 |
+
|
4395 |
+
return false;
|
4396 |
+
}
|
4397 |
+
|
4398 |
+
/**
|
4399 |
+
* Get path to cached .css file
|
4400 |
+
*
|
4401 |
+
* @return string
|
4402 |
+
*/
|
4403 |
+
protected function cacheName($fname) {
|
4404 |
+
return $this->join($this->cacheDir, md5($fname) . '.css');
|
4405 |
+
}
|
4406 |
+
|
4407 |
+
/**
|
4408 |
+
* Get path to cached imports
|
4409 |
+
*
|
4410 |
+
* @return string
|
4411 |
+
*/
|
4412 |
+
protected function importsCacheName($out) {
|
4413 |
+
return $out . '.imports';
|
4414 |
+
}
|
4415 |
+
|
4416 |
+
/**
|
4417 |
+
* Determine whether .scss file needs to be re-compiled.
|
4418 |
+
*
|
4419 |
+
* @param string $in Input path
|
4420 |
+
* @param string $out Output path
|
4421 |
+
*
|
4422 |
+
* @return boolean True if compile required.
|
4423 |
+
*/
|
4424 |
+
protected function needsCompile($in, $out) {
|
4425 |
+
if (!is_file($out)) return true;
|
4426 |
+
|
4427 |
+
$mtime = filemtime($out);
|
4428 |
+
if (filemtime($in) > $mtime) return true;
|
4429 |
+
|
4430 |
+
// look for modified imports
|
4431 |
+
$icache = $this->importsCacheName($out);
|
4432 |
+
if (is_readable($icache)) {
|
4433 |
+
$imports = unserialize(file_get_contents($icache));
|
4434 |
+
foreach ($imports as $import) {
|
4435 |
+
if (filemtime($import) > $mtime) return true;
|
4436 |
+
}
|
4437 |
+
}
|
4438 |
+
return false;
|
4439 |
+
}
|
4440 |
+
|
4441 |
+
/**
|
4442 |
+
* Get If-Modified-Since header from client request
|
4443 |
+
*
|
4444 |
+
* @return string
|
4445 |
+
*/
|
4446 |
+
protected function getModifiedSinceHeader()
|
4447 |
+
{
|
4448 |
+
$modifiedSince = '';
|
4449 |
+
|
4450 |
+
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
|
4451 |
+
$modifiedSince = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
|
4452 |
+
|
4453 |
+
if (false !== ($semicolonPos = strpos($modifiedSince, ';'))) {
|
4454 |
+
$modifiedSince = substr($modifiedSince, 0, $semicolonPos);
|
4455 |
+
}
|
4456 |
+
}
|
4457 |
+
|
4458 |
+
return $modifiedSince;
|
4459 |
+
}
|
4460 |
+
|
4461 |
+
/**
|
4462 |
+
* Compile .scss file
|
4463 |
+
*
|
4464 |
+
* @param string $in Input path (.scss)
|
4465 |
+
* @param string $out Output path (.css)
|
4466 |
+
*
|
4467 |
+
* @return string
|
4468 |
+
*/
|
4469 |
+
protected function compile($in, $out) {
|
4470 |
+
$start = microtime(true);
|
4471 |
+
$css = $this->scss->compile(file_get_contents($in), $in);
|
4472 |
+
$elapsed = round((microtime(true) - $start), 4);
|
4473 |
+
|
4474 |
+
$v = scssc_free::$VERSION;
|
4475 |
+
$t = @date('r');
|
4476 |
+
$css = "/* compiled by scssphp $v on $t (${elapsed}s) */\n\n" . $css;
|
4477 |
+
|
4478 |
+
file_put_contents($out, $css);
|
4479 |
+
file_put_contents($this->importsCacheName($out),
|
4480 |
+
serialize($this->scss->getParsedFiles()));
|
4481 |
+
return $css;
|
4482 |
+
}
|
4483 |
+
|
4484 |
+
/**
|
4485 |
+
* Compile requested scss and serve css. Outputs HTTP response.
|
4486 |
+
*
|
4487 |
+
* @param string $salt Prefix a string to the filename for creating the cache name hash
|
4488 |
+
*/
|
4489 |
+
public function serve($salt = '') {
|
4490 |
+
$protocol = isset($_SERVER['SERVER_PROTOCOL'])
|
4491 |
+
? $_SERVER['SERVER_PROTOCOL']
|
4492 |
+
: 'HTTP/1.0';
|
4493 |
+
|
4494 |
+
if ($input = $this->findInput()) {
|
4495 |
+
$output = $this->cacheName($salt . $input);
|
4496 |
+
|
4497 |
+
if ($this->needsCompile($input, $output)) {
|
4498 |
+
try {
|
4499 |
+
$css = $this->compile($input, $output);
|
4500 |
+
|
4501 |
+
$lastModified = gmdate('D, d M Y H:i:s', filemtime($output)) . ' GMT';
|
4502 |
+
|
4503 |
+
header('Last-Modified: ' . $lastModified);
|
4504 |
+
header('Content-type: text/css');
|
4505 |
+
|
4506 |
+
echo $css;
|
4507 |
+
|
4508 |
+
return;
|
4509 |
+
} catch (Exception $e) {
|
4510 |
+
header($protocol . ' 500 Internal Server Error');
|
4511 |
+
header('Content-type: text/plain');
|
4512 |
+
|
4513 |
+
echo 'Parse error: ' . $e->getMessage() . "\n";
|
4514 |
+
}
|
4515 |
+
}
|
4516 |
+
|
4517 |
+
header('X-SCSS-Cache: true');
|
4518 |
+
header('Content-type: text/css');
|
4519 |
+
|
4520 |
+
$modifiedSince = $this->getModifiedSinceHeader();
|
4521 |
+
$mtime = filemtime($output);
|
4522 |
+
|
4523 |
+
if (@strtotime($modifiedSince) === $mtime) {
|
4524 |
+
header($protocol . ' 304 Not Modified');
|
4525 |
+
|
4526 |
+
return;
|
4527 |
+
}
|
4528 |
+
|
4529 |
+
$lastModified = gmdate('D, d M Y H:i:s', $mtime) . ' GMT';
|
4530 |
+
header('Last-Modified: ' . $lastModified);
|
4531 |
+
|
4532 |
+
echo file_get_contents($output);
|
4533 |
+
|
4534 |
+
return;
|
4535 |
+
}
|
4536 |
+
|
4537 |
+
header($protocol . ' 404 Not Found');
|
4538 |
+
header('Content-type: text/plain');
|
4539 |
+
|
4540 |
+
$v = scssc_free::$VERSION;
|
4541 |
+
echo "/* INPUT NOT FOUND scss $v */\n";
|
4542 |
+
}
|
4543 |
+
|
4544 |
+
/**
|
4545 |
+
* Constructor
|
4546 |
+
*
|
4547 |
+
* @param string $dir Root directory to .scss files
|
4548 |
+
* @param string $cacheDir Cache directory
|
4549 |
+
* @param \scssc|null $scss SCSS compiler instance
|
4550 |
+
*/
|
4551 |
+
public function __construct($dir, $cacheDir=null, $scss=null) {
|
4552 |
+
$this->dir = $dir;
|
4553 |
+
|
4554 |
+
if (!isset($cacheDir)) {
|
4555 |
+
$cacheDir = $this->join($dir, 'scss_cache');
|
4556 |
+
}
|
4557 |
+
|
4558 |
+
$this->cacheDir = $cacheDir;
|
4559 |
+
if (!is_dir($this->cacheDir)) mkdir($this->cacheDir, 0755, true);
|
4560 |
+
|
4561 |
+
if (!isset($scss)) {
|
4562 |
+
$scss = new scssc_free();
|
4563 |
+
$scss->setImportPaths($this->dir);
|
4564 |
+
}
|
4565 |
+
$this->scss = $scss;
|
4566 |
+
}
|
4567 |
+
|
4568 |
+
/**
|
4569 |
+
* Helper method to serve compiled scss
|
4570 |
+
*
|
4571 |
+
* @param string $path Root path
|
4572 |
+
*/
|
4573 |
+
static public function serveFrom($path) {
|
4574 |
+
$server = new self($path);
|
4575 |
+
$server->serve();
|
4576 |
+
}
|
4577 |
+
}
|
src/app/Models/Option.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Models;
|
4 |
+
use ResponsiveMenu\Filters\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 setValue($value) {
|
30 |
+
$this->value = $value;
|
31 |
+
}
|
32 |
+
|
33 |
+
public function getFiltered() {
|
34 |
+
return $this->filter->filter($this->value);
|
35 |
+
}
|
36 |
+
|
37 |
+
public function getFilter() {
|
38 |
+
return $this->filter;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function __toString() {
|
42 |
+
return (string) $this->value;
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
src/app/Repositories/OptionRepository.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Repositories;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
use ResponsiveMenu\Database\Database;
|
7 |
+
use ResponsiveMenu\Factories\OptionFactory;
|
8 |
+
|
9 |
+
class OptionRepository {
|
10 |
+
|
11 |
+
protected static $table = 'responsive_menu';
|
12 |
+
|
13 |
+
public function __construct(Database $db, OptionFactory $factory, array $defaults) {
|
14 |
+
$this->db = $db;
|
15 |
+
$this->factory = $factory;
|
16 |
+
$this->defaults = $defaults;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function all() {
|
20 |
+
$options = $this->db->all(self::$table);
|
21 |
+
$collection = new OptionsCollection;
|
22 |
+
foreach($options as $option)
|
23 |
+
$collection->add($this->factory->build($option->name, $option->value));
|
24 |
+
return $collection;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function update(Option $option) {
|
28 |
+
return $this->db->update(self::$table,
|
29 |
+
['value' => $option->getFiltered()],
|
30 |
+
['name' => $option->getName()]
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
public function create(Option $option) {
|
35 |
+
$arguments['name'] = $option->getName();
|
36 |
+
$arguments['value'] = $option->getFiltered();
|
37 |
+
$arguments['created_at'] = $this->db->mySqlTime();
|
38 |
+
return $this->db->insert(self::$table, $arguments);
|
39 |
+
}
|
40 |
+
|
41 |
+
public function remove($name) {
|
42 |
+
return $this->db->delete(self::$table, $name);
|
43 |
+
}
|
44 |
+
|
45 |
+
public function buildFromArray(array $array) {
|
46 |
+
$collection = new OptionsCollection;
|
47 |
+
foreach(array_merge($this->defaults, $array) as $name => $value):
|
48 |
+
$option = $this->factory->build($name, $value);
|
49 |
+
$option->setValue($option->getFiltered());
|
50 |
+
$collection->add($option);
|
51 |
+
endforeach;
|
52 |
+
|
53 |
+
return $collection;
|
54 |
+
}
|
55 |
+
|
56 |
+
}
|
src/app/Routing/Container.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Routing;
|
4 |
+
|
5 |
+
class Container implements \ArrayAccess
|
6 |
+
{
|
7 |
+
private $values = [];
|
8 |
+
private $raw = [];
|
9 |
+
private $keys = [];
|
10 |
+
|
11 |
+
public function offsetSet($id, $value) {
|
12 |
+
$this->values[$id] = $value;
|
13 |
+
$this->keys[$id] = true;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function offsetGet($id) {
|
17 |
+
|
18 |
+
if(!isset($this->keys[$id])) {
|
19 |
+
throw new \InvalidArgumentException(sprintf('Identifier "%s" is not defined.', $id));
|
20 |
+
}
|
21 |
+
|
22 |
+
if(isset($this->raw[$id]) || !is_object($this->values[$id]) || !method_exists($this->values[$id], '__invoke')) {
|
23 |
+
return $this->values[$id];
|
24 |
+
}
|
25 |
+
|
26 |
+
$raw = $this->values[$id];
|
27 |
+
$val = $this->values[$id] = $raw($this);
|
28 |
+
$this->raw[$id] = $this->values[$id];
|
29 |
+
|
30 |
+
return $this->values[$id];
|
31 |
+
}
|
32 |
+
|
33 |
+
public function offsetExists($id) {
|
34 |
+
return isset($this->keys[$id]);
|
35 |
+
}
|
36 |
+
|
37 |
+
public function offsetUnset($id) {
|
38 |
+
if(isset($this->keys[$id])) {
|
39 |
+
unset($this->values[$id], $this->raw[$id], $this->keys[$id]);
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
public function keys() {
|
44 |
+
return array_keys($this->values);
|
45 |
+
}
|
46 |
+
|
47 |
+
}
|
src/app/Services/OptionService.php
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Services;
|
4 |
+
use ResponsiveMenu\Repositories\OptionRepository;
|
5 |
+
use ResponsiveMenu\Translation\Translator;
|
6 |
+
use ResponsiveMenu\Factories\OptionFactory;
|
7 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
8 |
+
use ResponsiveMenu\Filesystem\ScriptsBuilder;
|
9 |
+
|
10 |
+
class OptionService {
|
11 |
+
|
12 |
+
public function __construct(OptionRepository $repository, OptionFactory $factory, Translator $translator, ScriptsBuilder $builder) {
|
13 |
+
$this->repository = $repository;
|
14 |
+
$this->factory = $factory;
|
15 |
+
$this->translator = $translator;
|
16 |
+
$this->builder = $builder;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function all() {
|
20 |
+
return $this->repository->all();
|
21 |
+
}
|
22 |
+
|
23 |
+
public function updateOptions(array $options) {
|
24 |
+
|
25 |
+
foreach($options as $key => $val)
|
26 |
+
$this->repository->update($this->factory->build($key, $val));
|
27 |
+
|
28 |
+
return $this->processAfterSavingOptions();
|
29 |
+
}
|
30 |
+
|
31 |
+
public function createOptions(array $options) {
|
32 |
+
|
33 |
+
foreach($options as $key => $val)
|
34 |
+
$this->repository->create($this->factory->build($key, $val));
|
35 |
+
|
36 |
+
return $this->processAfterSavingOptions();
|
37 |
+
}
|
38 |
+
|
39 |
+
private function processAfterSavingOptions() {
|
40 |
+
$options = $this->all();
|
41 |
+
$this->translator->saveTranslations($options);
|
42 |
+
if($options['external_files'] == 'on')
|
43 |
+
$this->builder->build($options);
|
44 |
+
return $options;
|
45 |
+
}
|
46 |
+
|
47 |
+
public function buildFromPostArray(array $post) {
|
48 |
+
return $this->repository->buildFromArray($post);
|
49 |
+
}
|
50 |
+
|
51 |
+
public function combineOptions($default_options, $new_options) {
|
52 |
+
return array_merge($default_options, array_filter($new_options, function($value) {
|
53 |
+
return ($value !== null && $value !== false && $value !== '');
|
54 |
+
}));
|
55 |
+
}
|
56 |
+
|
57 |
+
}
|
src/app/Translation/Translator.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Translation;
|
4 |
+
use ResponsiveMenu\Models\Option;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
|
7 |
+
class Translator {
|
8 |
+
|
9 |
+
private $translatables = [
|
10 |
+
'menu_to_use',
|
11 |
+
'button_title',
|
12 |
+
'menu_title',
|
13 |
+
'menu_title_link',
|
14 |
+
'menu_additional_content'
|
15 |
+
];
|
16 |
+
|
17 |
+
public function translate(Option $option) {
|
18 |
+
// WPML Support
|
19 |
+
$translated = apply_filters('wpml_translate_single_string', $option->getValue(), 'Responsive Menu', $option->getName());
|
20 |
+
|
21 |
+
// Polylang Support
|
22 |
+
$translated = function_exists('pll__') ? pll__($translated) : $translated;
|
23 |
+
|
24 |
+
return $translated;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function searchUrl() {
|
28 |
+
return function_exists('icl_get_home_url') ? icl_get_home_url() : get_home_url();
|
29 |
+
}
|
30 |
+
|
31 |
+
public function saveTranslations(OptionsCollection $options) {
|
32 |
+
foreach($this->translatables as $option_name)
|
33 |
+
if(isset($options[$option_name]))
|
34 |
+
do_action('wpml_register_single_string', 'Responsive Menu', $option_name, $options[$option_name]->getValue());
|
35 |
+
}
|
36 |
+
|
37 |
+
public function allowShortcode($text) {
|
38 |
+
return do_shortcode($text);
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
src/app/View/AdminView.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\View;
|
4 |
+
|
5 |
+
class AdminView implements View {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
if(is_admin() && isset($_GET['page']) && $_GET['page'] == 'responsive-menu'):
|
9 |
+
|
10 |
+
wp_enqueue_media();
|
11 |
+
|
12 |
+
wp_enqueue_style('wp-color-picker');
|
13 |
+
wp_enqueue_script('wp-color-picker');
|
14 |
+
|
15 |
+
wp_enqueue_script('responsive-menu-font-awesome', 'https://use.fontawesome.com/b6bedb3084.js', null, null);
|
16 |
+
|
17 |
+
wp_enqueue_script('postbox');
|
18 |
+
wp_enqueue_script('postbox-edit', plugin_dir_url(dirname(dirname(__FILE__))) . 'public/js/admin/postbox-edit.js', array('jquery', 'postbox'));
|
19 |
+
|
20 |
+
wp_enqueue_script('jquery-ui-core');
|
21 |
+
|
22 |
+
wp_register_style('admin-css', plugin_dir_url(dirname(dirname(__FILE__))) . 'public/css/admin/main.css', false, null );
|
23 |
+
wp_enqueue_style('admin-css');
|
24 |
+
|
25 |
+
wp_register_script('admin-js', plugin_dir_url(dirname(dirname(__FILE__))) . 'public/js/admin/main.js', 'jquery', null );
|
26 |
+
wp_enqueue_script('admin-js' );
|
27 |
+
|
28 |
+
endif;
|
29 |
+
}
|
30 |
+
|
31 |
+
public function render($location, $l = []) {
|
32 |
+
include dirname(dirname(dirname(__FILE__))) . '/views/admin/' . $location . '.phtml';
|
33 |
+
}
|
34 |
+
|
35 |
+
public function noCacheHeaders() {
|
36 |
+
header('Cache-Control: no-cache, no-store, must-revalidate');
|
37 |
+
header('Pragma: no-cache');
|
38 |
+
header('Expires: 0');
|
39 |
+
header('Content-Type: application/json; charset=utf-8');
|
40 |
+
header('Content-Disposition: attachment; filename=export.json');
|
41 |
+
}
|
42 |
+
|
43 |
+
public function stopProcessing() {
|
44 |
+
exit();
|
45 |
+
}
|
46 |
+
|
47 |
+
public function display($content) {
|
48 |
+
echo $content;
|
49 |
+
}
|
50 |
+
|
51 |
+
}
|
src/app/View/FrontView.php
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\View;
|
4 |
+
|
5 |
+
use ResponsiveMenu\Factories\CssFactory;
|
6 |
+
use ResponsiveMenu\Factories\JsFactory;
|
7 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
8 |
+
|
9 |
+
class FrontView implements View {
|
10 |
+
|
11 |
+
public function __construct(JsFactory $js, CssFactory $css) {
|
12 |
+
$this->js = $js;
|
13 |
+
$this->css = $css;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function render($location, $l = []) {
|
17 |
+
add_action('wp_footer', function() use ($location, $l) {
|
18 |
+
include dirname(dirname(dirname(__FILE__))) . '/views/' . $location . '.phtml';
|
19 |
+
});
|
20 |
+
}
|
21 |
+
|
22 |
+
public function make($location, $l = []) {
|
23 |
+
ob_start();
|
24 |
+
include dirname(dirname(dirname(__FILE__))) . '/views/' . $location . '.phtml';
|
25 |
+
$output = ob_get_contents();
|
26 |
+
ob_end_clean();
|
27 |
+
return $output;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function echoOrIncludeScripts(OptionsCollection $options) {
|
31 |
+
|
32 |
+
$css = $this->css->build($options);
|
33 |
+
$js = $this->js->build($options);
|
34 |
+
|
35 |
+
add_filter('body_class', function($classes) use($options) {
|
36 |
+
$classes[] = 'responsive-menu-' . $options['animation_type'] . '-' . $options['menu_appear_from'];
|
37 |
+
return $classes;
|
38 |
+
});
|
39 |
+
|
40 |
+
wp_enqueue_script('jquery');
|
41 |
+
|
42 |
+
if($options['external_files'] == 'on') :
|
43 |
+
$data_folder_dir = plugins_url(). '/responsive-menu-data';
|
44 |
+
$css_file = $data_folder_dir . '/css/responsive-menu-' . get_current_blog_id() . '.css';
|
45 |
+
$js_file = $data_folder_dir . '/js/responsive-menu-' . get_current_blog_id() . '.js';
|
46 |
+
wp_enqueue_style('responsive-menu', $css_file, null, false);
|
47 |
+
wp_enqueue_script('responsive-menu', $js_file, ['jquery'], false, $options['scripts_in_footer'] == 'on' ? true : false);
|
48 |
+
else :
|
49 |
+
add_action('wp_head', function() use ($css) {
|
50 |
+
echo '<style>' . $css . '</style>';
|
51 |
+
}, 100);
|
52 |
+
add_action($options['scripts_in_footer'] == 'on' ? 'wp_footer' : 'wp_head', function() use ($js) {
|
53 |
+
echo '<script>' . $js . '</script>';
|
54 |
+
}, 100);
|
55 |
+
endif;
|
56 |
+
}
|
57 |
+
|
58 |
+
public function addShortcode($options, $button, $menu) {
|
59 |
+
add_shortcode('responsive_menu', function($atts) use($options, $button, $menu) {
|
60 |
+
|
61 |
+
if($atts)
|
62 |
+
array_walk($atts, function($a, $b) use ($options) { $options[$b] = $a; });
|
63 |
+
|
64 |
+
$html = $this->make('button', ['options' => $options, 'button' => $button]);
|
65 |
+
|
66 |
+
return $html . $this->make('menu', ['options' => $options, 'menu' => $menu]);
|
67 |
+
|
68 |
+
});
|
69 |
+
}
|
70 |
+
|
71 |
+
}
|
src/app/View/View.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\View;
|
4 |
+
|
5 |
+
interface View
|
6 |
+
{
|
7 |
+
public function render($location, $l = []);
|
8 |
+
}
|
src/app/ViewModels/Button.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels;
|
4 |
+
use ResponsiveMenu\ViewModels\Components\Button\Button as ButtonComponent;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
|
7 |
+
class Button {
|
8 |
+
|
9 |
+
public function __construct(ButtonComponent $component) {
|
10 |
+
$this->component = $component;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function getHtml(OptionsCollection $options) {
|
14 |
+
return $this->component->render($options);
|
15 |
+
}
|
16 |
+
|
17 |
+
}
|
src/app/ViewModels/Components/Admin/Boxes.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Admin;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
use ResponsiveMenu\Form;
|
6 |
+
|
7 |
+
class Boxes {
|
8 |
+
|
9 |
+
private $config;
|
10 |
+
|
11 |
+
public function __construct(array $config, OptionsCollection $options) {
|
12 |
+
$this->config = $config;
|
13 |
+
$this->options = $options;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function render() {
|
17 |
+
$output = '';
|
18 |
+
foreach($this->config as $tab_name => $sub_menus):
|
19 |
+
$output .= '<div class="tab_container" id="tab_container_' . $this->i($tab_name) . '">';
|
20 |
+
foreach($sub_menus as $sub_menu_name => $options):
|
21 |
+
$output .= '
|
22 |
+
<div class="postbox" id="postbox_' . $this->i($sub_menu_name).'">
|
23 |
+
<div class="handlediv">
|
24 |
+
<button aria-expanded="true" class="button-link" type="button">
|
25 |
+
<span class="screen-reader-text">' . __('Toggle panel: Location', 'responsive-menu') . '</span>
|
26 |
+
<span aria-hidden="true" class="toggle-indicator"></span>
|
27 |
+
</button>
|
28 |
+
</div> <!-- .handlediv -->
|
29 |
+
<h2 class="ui-sortable-handle hndle">' . $tab_name . ' » ' . $sub_menu_name . '</h2>
|
30 |
+
<div class="inside">
|
31 |
+
<table class="widefat">';
|
32 |
+
foreach($options as $option):
|
33 |
+
$pro = isset($option['pro']) ? 'pro_option' : '';
|
34 |
+
$semi_pro = isset($option['semi_pro']) ? 'semi_pro_option' : '';
|
35 |
+
$type = isset($option['type']) ? $option['type'] : null;
|
36 |
+
$unit = isset($option['unit']) ? '<span class="units">' . $option['unit'] . '</span>' : null;
|
37 |
+
$select = isset($option['select']) ? $option['select'] : null;
|
38 |
+
$output .= '<tr class="' . $pro . ' ' . $semi_pro . '" id="' . $option['option'] . '_container">
|
39 |
+
<td>
|
40 |
+
<div class="label">' . $option['title'] . '</div>
|
41 |
+
<span class="description">' . $option['label'] . '</span>
|
42 |
+
</td>
|
43 |
+
<td>';
|
44 |
+
$output .= $this->f($type, $option['option'], $select);
|
45 |
+
$output .= $unit . '</td>
|
46 |
+
</tr>';
|
47 |
+
endforeach;
|
48 |
+
$output .= '</table>
|
49 |
+
</div> <!-- .inside -->
|
50 |
+
</div> <!-- .postbox -->';
|
51 |
+
endforeach;
|
52 |
+
$output .= '</div> <!-- .tab_container -->';
|
53 |
+
endforeach;
|
54 |
+
return $output;
|
55 |
+
}
|
56 |
+
|
57 |
+
public function i($data) {
|
58 |
+
return strtolower(str_replace([' ', '/'], '_', $data));
|
59 |
+
}
|
60 |
+
|
61 |
+
public function f($type, $option_name, $select) {
|
62 |
+
switch($type):
|
63 |
+
case 'checkbox' : $comp = new Form\Checkbox;
|
64 |
+
return $comp->render($this->options[$option_name]);
|
65 |
+
break;
|
66 |
+
case 'colour' : $comp = new Form\Colour;
|
67 |
+
return $comp->render($this->options[$option_name]);
|
68 |
+
break;
|
69 |
+
case 'textarea' : $comp = new Form\TextArea;
|
70 |
+
return $comp->render($this->options[$option_name]);
|
71 |
+
break;
|
72 |
+
case 'select' : $comp = new Form\Select;
|
73 |
+
return $comp->render($this->options[$option_name], $select);
|
74 |
+
break;
|
75 |
+
case 'image' : $comp = new Form\Image;
|
76 |
+
return $comp->render($this->options[$option_name]);
|
77 |
+
break;
|
78 |
+
case 'menu_ordering' : $comp = new Form\MenuOrdering;
|
79 |
+
return $comp->render($this->options[$option_name]);
|
80 |
+
break;
|
81 |
+
case 'header_ordering' : $comp = new Form\HeaderBarOrdering;
|
82 |
+
return $comp->render($this->options[$option_name]);
|
83 |
+
break;
|
84 |
+
case 'fonticons' : $comp = new Form\FontIconPageList;
|
85 |
+
return $comp->render($this->options[$option_name]);
|
86 |
+
break;
|
87 |
+
case 'import' : $comp = new Form\Import;
|
88 |
+
return $comp->render();
|
89 |
+
break;
|
90 |
+
case 'export' : $comp = new Form\Export;
|
91 |
+
return $comp->render();
|
92 |
+
break;
|
93 |
+
case 'reset' : $comp = new Form\Reset;
|
94 |
+
return $comp->render();
|
95 |
+
break;
|
96 |
+
default : $comp = new Form\Text;
|
97 |
+
return $comp->render($this->options[$option_name]);
|
98 |
+
break;
|
99 |
+
endswitch;
|
100 |
+
|
101 |
+
}
|
102 |
+
|
103 |
+
}
|
src/app/ViewModels/Components/Admin/Tabs.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Admin;
|
4 |
+
|
5 |
+
class Tabs {
|
6 |
+
|
7 |
+
private $config;
|
8 |
+
|
9 |
+
public function __construct(array $config) {
|
10 |
+
$this->config = $config;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function render() {
|
14 |
+
$i=0;
|
15 |
+
$output = '';
|
16 |
+
foreach(array_keys($this->config) as $tab_name) {
|
17 |
+
$active_class = $i == 0 ? ' active_tab' : '';
|
18 |
+
$output .= '<a id="tab_' . $this->i($tab_name) . '" class="tab page-title-action' . $active_class . '">' . $tab_name . '</a>';
|
19 |
+
$i++;
|
20 |
+
}
|
21 |
+
return $output;
|
22 |
+
}
|
23 |
+
|
24 |
+
public function i($data) {
|
25 |
+
return strtolower(str_replace([' ', '/'], '_', $data));
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
src/app/ViewModels/Components/Button/Button.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Button;
|
4 |
+
|
5 |
+
use ResponsiveMenu\ViewModels\Components\ViewComponent;
|
6 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
7 |
+
use ResponsiveMenu\Translation\Translator;
|
8 |
+
|
9 |
+
class Button implements ViewComponent {
|
10 |
+
|
11 |
+
public function __construct(Translator $translator) {
|
12 |
+
$this->translator = $translator;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function render(OptionsCollection $options) {
|
16 |
+
|
17 |
+
$button_title = $this->translator->translate($options['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 |
+
|
25 |
+
$content .= '<button id="responsive-menu-button"
|
26 |
+
class="responsive-menu-button ' . $accessible .
|
27 |
+
' responsive-menu-' . $options['button_click_animation'] . '"
|
28 |
+
type="button"
|
29 |
+
aria-label="Menu">';
|
30 |
+
$content .= in_array($button_title_pos, array('top', 'left')) ? $button_title_html : '';
|
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 |
+
|
37 |
+
}
|
38 |
+
|
39 |
+
}
|
src/app/ViewModels/Components/ComponentFactory.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components;
|
4 |
+
use ResponsiveMenu\Translation\Translator;
|
5 |
+
|
6 |
+
class ComponentFactory {
|
7 |
+
|
8 |
+
public function build($key) {
|
9 |
+
|
10 |
+
$components = [
|
11 |
+
'title' => 'ResponsiveMenu\ViewModels\Components\Menu\Title',
|
12 |
+
'menu' => 'ResponsiveMenu\ViewModels\Components\Menu\Menu',
|
13 |
+
'search' => 'ResponsiveMenu\ViewModels\Components\Menu\Search',
|
14 |
+
'additional content' => 'ResponsiveMenu\ViewModels\Components\Menu\AdditionalContent'
|
15 |
+
];
|
16 |
+
|
17 |
+
return new $components[$key](new Translator);
|
18 |
+
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
src/app/ViewModels/Components/Menu/AdditionalContent.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Menu;
|
4 |
+
use ResponsiveMenu\ViewModels\Components\ViewComponent;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
use ResponsiveMenu\Translation\Translator;
|
7 |
+
|
8 |
+
class AdditionalContent implements ViewComponent {
|
9 |
+
|
10 |
+
public function __construct(Translator $translator) {
|
11 |
+
$this->translator = $translator;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function render(OptionsCollection $options) {
|
15 |
+
|
16 |
+
$content = $this->translator->translate($options['menu_additional_content']);
|
17 |
+
|
18 |
+
if($content)
|
19 |
+
return '<div id="responsive-menu-additional-content">' . $this->translator->allowShortcode($content) . '</div>';
|
20 |
+
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
src/app/ViewModels/Components/Menu/Menu.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Menu;
|
4 |
+
use ResponsiveMenu\ViewModels\Components\ViewComponent;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
use ResponsiveMenu\Walkers\WpWalker;
|
7 |
+
use ResponsiveMenu\Translation\Translator;
|
8 |
+
|
9 |
+
class Menu implements ViewComponent {
|
10 |
+
|
11 |
+
public function __construct(Translator $translator) {
|
12 |
+
$this->translator = $translator;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function render(OptionsCollection $options) {
|
16 |
+
|
17 |
+
$menu = $this->translator->translate($options['menu_to_use']);
|
18 |
+
$walker = $options['custom_walker']->getValue();
|
19 |
+
|
20 |
+
return wp_nav_menu(
|
21 |
+
[
|
22 |
+
'container' => '',
|
23 |
+
'menu_id' => 'responsive-menu',
|
24 |
+
'menu_class' => null,
|
25 |
+
'menu' => $menu && !$options['theme_location_menu']->getValue() ? $menu : null,
|
26 |
+
'depth' => $options['menu_depth']->getValue() ? $options['menu_depth']->getValue() : 0,
|
27 |
+
'theme_location' => $options['theme_location_menu']->getValue() ? $options['theme_location_menu']->getValue() : null,
|
28 |
+
'walker' => $walker ? new $walker($options) : new WpWalker($options),
|
29 |
+
'echo' => false
|
30 |
+
]
|
31 |
+
);
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
}
|
src/app/ViewModels/Components/Menu/Search.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Menu;
|
4 |
+
use ResponsiveMenu\ViewModels\Components\ViewComponent;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
use ResponsiveMenu\Translation\Translator;
|
7 |
+
|
8 |
+
class Search implements ViewComponent {
|
9 |
+
|
10 |
+
public function __construct(Translator $translator) {
|
11 |
+
$this->translator = $translator;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function render(OptionsCollection $options) {
|
15 |
+
|
16 |
+
return '<div id="responsive-menu-search-box">
|
17 |
+
<form action="'.$this->translator->searchUrl().'" class="responsive-menu-search-form" role="search">
|
18 |
+
<input type="search" name="s" placeholder="' . __('Search', 'responsive-menu') . '" class="responsive-menu-search-box">
|
19 |
+
</form>
|
20 |
+
</div>';
|
21 |
+
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
src/app/ViewModels/Components/Menu/Title.php
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components\Menu;
|
4 |
+
use ResponsiveMenu\ViewModels\Components\ViewComponent;
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
use ResponsiveMenu\Translation\Translator;
|
7 |
+
|
8 |
+
class Title implements ViewComponent {
|
9 |
+
|
10 |
+
public function __construct(Translator $translator) {
|
11 |
+
$this->translator = $translator;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function render(OptionsCollection $options) {
|
15 |
+
|
16 |
+
$title = $this->translator->translate($options['menu_title']);
|
17 |
+
$link = $this->translator->translate($options['menu_title_link']);
|
18 |
+
|
19 |
+
if($options['menu_title']->getValue() || $options->getTitleImage()):
|
20 |
+
|
21 |
+
$content = '<div id="responsive-menu-title">';
|
22 |
+
|
23 |
+
if($options['menu_title_link']->getValue())
|
24 |
+
$content .= '<a href="'.$link.'" target="'.$options['menu_title_link_location'].'">';
|
25 |
+
|
26 |
+
if($options->getTitleImage())
|
27 |
+
$content .= '<div id="responsive-menu-title-image">' . $options->getTitleImage() . '</div>';
|
28 |
+
|
29 |
+
if($options['menu_title_link']->getValue())
|
30 |
+
$content .= '</a>';
|
31 |
+
|
32 |
+
if($options['menu_title_link']->getValue())
|
33 |
+
$content .= '<a href="'.$link.'" target="'.$options['menu_title_link_location'].'">';
|
34 |
+
|
35 |
+
$content .= $title;
|
36 |
+
|
37 |
+
if($options['menu_title_link']->getValue())
|
38 |
+
$content .= '</a>';
|
39 |
+
|
40 |
+
$content .= '</div>';
|
41 |
+
|
42 |
+
return $content;
|
43 |
+
|
44 |
+
endif;
|
45 |
+
|
46 |
+
}
|
47 |
+
|
48 |
+
}
|
src/app/ViewModels/Components/ViewComponent.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels\Components;
|
4 |
+
|
5 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
6 |
+
|
7 |
+
interface ViewComponent {
|
8 |
+
|
9 |
+
public function render(OptionsCollection $collection);
|
10 |
+
|
11 |
+
}
|
src/app/ViewModels/Menu.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\ViewModels;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
use ResponsiveMenu\ViewModels\Components\ComponentFactory;
|
6 |
+
|
7 |
+
class Menu {
|
8 |
+
|
9 |
+
public function __construct(ComponentFactory $factory) {
|
10 |
+
$this->factory = $factory;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function getHtml(OptionsCollection $options) {
|
14 |
+
$content = '';
|
15 |
+
|
16 |
+
foreach(json_decode($options['items_order']) as $key => $val)
|
17 |
+
if($val == 'on')
|
18 |
+
$content .= $this->factory->build($key)->render($options);
|
19 |
+
|
20 |
+
return $content;
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
src/app/Walkers/WpWalker.php
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace ResponsiveMenu\Walkers;
|
4 |
+
use ResponsiveMenu\Collections\OptionsCollection;
|
5 |
+
|
6 |
+
class WpWalker extends \Walker_Nav_Menu {
|
7 |
+
|
8 |
+
private $current_item;
|
9 |
+
|
10 |
+
public function __construct(OptionsCollection $options) {
|
11 |
+
$this->options = $options;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
|
15 |
+
|
16 |
+
$this->setCurrentItem($item);
|
17 |
+
|
18 |
+
$classes = empty($item->classes) ? array() : (array) $item->classes;
|
19 |
+
$responsive_menu_classes = $classes;
|
20 |
+
|
21 |
+
# Turn into our Responsive Menu Classes
|
22 |
+
foreach($classes as $class):
|
23 |
+
switch($class):
|
24 |
+
case 'menu-item': $responsive_menu_classes[] = 'responsive-menu-item'; break;
|
25 |
+
case 'current-menu-item': $responsive_menu_classes[] = 'responsive-menu-current-item'; break;
|
26 |
+
case 'menu-item-has-children': $responsive_menu_classes[] = 'responsive-menu-item-has-children'; break;
|
27 |
+
case 'current-menu-parent': $responsive_menu_classes[] = 'responsive-menu-item-current-parent'; break;
|
28 |
+
case 'current-menu-ancestor': $responsive_menu_classes[] = 'responsive-menu-item-current-ancestor'; break;
|
29 |
+
endswitch;
|
30 |
+
endforeach;
|
31 |
+
|
32 |
+
$class_names = join(' ', array_unique($responsive_menu_classes));
|
33 |
+
$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
|
34 |
+
|
35 |
+
$id = ' id="responsive-menu-item-' . esc_attr( $item->ID ) . '"';
|
36 |
+
|
37 |
+
$output .= '<li' . $id . $class_names .'>';
|
38 |
+
|
39 |
+
$atts = array();
|
40 |
+
$atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
|
41 |
+
$atts['target'] = ! empty( $item->target ) ? $item->target : '';
|
42 |
+
$atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : '';
|
43 |
+
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
44 |
+
$atts['class'] = 'responsive-menu-item-link';
|
45 |
+
|
46 |
+
|
47 |
+
$atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
|
48 |
+
|
49 |
+
$attributes = '';
|
50 |
+
foreach ( $atts as $attr => $value ) {
|
51 |
+
if ( ! empty( $value ) ) {
|
52 |
+
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
|
53 |
+
$attributes .= ' ' . $attr . '="' . $value . '"';
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
/** This filter is documented in wp-includes/post-template.php */
|
58 |
+
$title = apply_filters( 'the_title', $item->title, $item->ID );
|
59 |
+
|
60 |
+
$title = apply_filters( 'nav_menu_item_title', $title, $item, $args, $depth );
|
61 |
+
|
62 |
+
/* Calculate which arrow to show */
|
63 |
+
if(in_array('responsive-menu-item-has-children', $responsive_menu_classes)):
|
64 |
+
$inactive_arrow = '<div class="responsive-menu-subarrow">' . $this->options->getInActiveArrow() . '</div>';
|
65 |
+
$active_arrow = '<div class="responsive-menu-subarrow responsive-menu-subarrow-active">' . $this->options->getActiveArrow() . '</div>';
|
66 |
+
if($this->options['auto_expand_all_submenus'] == 'on'):
|
67 |
+
$initial_arrow = $active_arrow;
|
68 |
+
elseif(
|
69 |
+
$this->options['auto_expand_current_submenus'] == 'on' && (in_array('responsive-menu-item-current-parent', $responsive_menu_classes)
|
70 |
+
|| in_array('responsive-menu-item-current-ancestor', $responsive_menu_classes))):
|
71 |
+
$initial_arrow = $active_arrow;
|
72 |
+
else:
|
73 |
+
$initial_arrow = $inactive_arrow;
|
74 |
+
endif;
|
75 |
+
else:
|
76 |
+
$initial_arrow = '';
|
77 |
+
endif;
|
78 |
+
|
79 |
+
/* Clear Arrow if we are at the final depth level */
|
80 |
+
if($depth + 1 == $this->options['menu_depth']->getValue())
|
81 |
+
$initial_arrow = '';
|
82 |
+
|
83 |
+
$item_output = '<a'. $attributes .'>';
|
84 |
+
$item_output .= $title;
|
85 |
+
$item_output .= $initial_arrow;
|
86 |
+
$item_output .= '</a>';
|
87 |
+
|
88 |
+
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
|
89 |
+
|
90 |
+
}
|
91 |
+
|
92 |
+
public function start_lvl(&$output, $depth = 0, $args = array()) {
|
93 |
+
$output .= "<ul class='responsive-menu-submenu responsive-menu-submenu-depth-" . ($depth + 1) . $this->getSubmenuClassOpenOrNot() . "'>";
|
94 |
+
}
|
95 |
+
|
96 |
+
public function end_el(&$output, $item, $depth = 0, $args = array()) {
|
97 |
+
$output .= "</li>";
|
98 |
+
}
|
99 |
+
|
100 |
+
public function end_lvl(&$output, $depth = 0, $args = array()) {
|
101 |
+
$output .= "</ul>";
|
102 |
+
}
|
103 |
+
|
104 |
+
public function setCurrentItem($item) {
|
105 |
+
$this->current_item = $item;
|
106 |
+
}
|
107 |
+
|
108 |
+
public function getCurrentItem() {
|
109 |
+
return $this->current_item;
|
110 |
+
}
|
111 |
+
|
112 |
+
public function getSubmenuClassOpenOrNot() {
|
113 |
+
return $this->expandAllSubmenuOptionsIsOn() || $this->expandCurrentSubmenuOnAndItemIsParent() ? ' responsive-menu-submenu-open' : '';
|
114 |
+
}
|
115 |
+
|
116 |
+
public function expandAllSubmenuOptionsIsOn() {
|
117 |
+
return $this->options['auto_expand_all_submenus'] == 'on';
|
118 |
+
}
|
119 |
+
|
120 |
+
public function expandCurrentSubmenuOnAndItemIsParent() {
|
121 |
+
return ($this->options['auto_expand_current_submenus'] == 'on')
|
122 |
+
&& ($this->getCurrentItem()->current_item_ancestor || $this->getCurrentItem()->current_item_parent);
|
123 |
+
}
|
124 |
+
|
125 |
+
}
|
src/config/admin_ordering.php
ADDED
@@ -0,0 +1,1219 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$menus_array = [];
|
4 |
+
foreach(get_terms('nav_menu') as $menu) $menus_array[] = [ 'value' => $menu->slug, 'display' => $menu->name];
|
5 |
+
foreach(get_registered_nav_menus() as $location => $menu) $location_menus[] = ['value' => $location, 'display' => $menu];
|
6 |
+
$location_menus[] = ['value' => '', 'display' => 'None'];
|
7 |
+
|
8 |
+
$order_mapping = [
|
9 |
+
|
10 |
+
/*
|
11 |
+
*
|
12 |
+
* INITIAL SETUP
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
|
16 |
+
__('Initial Setup', 'responsive-menu') => [
|
17 |
+
__('Menu', 'responsive-menu') =>
|
18 |
+
[
|
19 |
+
[
|
20 |
+
'option' => 'breakpoint',
|
21 |
+
'title' => __('Breakpoint', 'responsive-menu'),
|
22 |
+
'label' => __('This is the width of the screen at which point you would like the menu to start showing', 'responsive-menu'),
|
23 |
+
'unit' => 'px'
|
24 |
+
],
|
25 |
+
[
|
26 |
+
'option' => 'menu_to_use',
|
27 |
+
'title' => __('Menu to Use', 'responsive-menu'),
|
28 |
+
'label' => __('', 'responsive-menu'),
|
29 |
+
'type' => 'select',
|
30 |
+
'select' => $menus_array
|
31 |
+
],
|
32 |
+
[
|
33 |
+
'option' => 'menu_to_hide',
|
34 |
+
'title' => __('CSS of Menu to Hide', 'responsive-menu'),
|
35 |
+
'label' => __('', 'responsive-menu')
|
36 |
+
]
|
37 |
+
]
|
38 |
+
],
|
39 |
+
|
40 |
+
|
41 |
+
/*
|
42 |
+
*
|
43 |
+
* MENU
|
44 |
+
*
|
45 |
+
*/
|
46 |
+
|
47 |
+
__('Menu', 'responsive-menu') => [
|
48 |
+
__('Section Ordering', 'responsive-menu') => [
|
49 |
+
[
|
50 |
+
'option' => 'items_order',
|
51 |
+
'title' => __('Order of Menu Items', 'responsive-menu'),
|
52 |
+
'label' => __('Drag the items to re-order and click to turn them on/off', 'responsive-menu'),
|
53 |
+
'type' => 'menu_ordering'
|
54 |
+
]
|
55 |
+
],
|
56 |
+
__('Font Icons', 'responsive-menu') =>
|
57 |
+
[
|
58 |
+
[
|
59 |
+
'option' => 'menu_font_icons',
|
60 |
+
'title' => __('Font Icons', 'responsive-menu'),
|
61 |
+
'label' => __('Responsive Menu uses the brilliant <a href="http://fontawesome.io/icons/" target="_blank">Awesome Font Icons</a> for implementing icons in your menu - for more info please visit our doc pages at <a href="https://responsive.menu/docs/basic-setup/font-icons/" target="_blank">https://responsive.menu/docs/basic-setup/font-icons/</a>', 'responsive-menu'),
|
62 |
+
'type' => 'fonticons',
|
63 |
+
'pro' => true
|
64 |
+
]
|
65 |
+
],
|
66 |
+
__('Sizing', 'responsive-menu') =>
|
67 |
+
[
|
68 |
+
[
|
69 |
+
'option' => 'menu_width',
|
70 |
+
'title' => __('Menu Width', 'responsive-menu'),
|
71 |
+
'label' => __('', 'responsive-menu'),
|
72 |
+
'unit' => '%'
|
73 |
+
],
|
74 |
+
[
|
75 |
+
'option' => 'menu_maximum_width',
|
76 |
+
'title' => __('Maximum Width', 'responsive-menu'),
|
77 |
+
'label' => __('', 'responsive-menu'),
|
78 |
+
'unit' => 'px'
|
79 |
+
],
|
80 |
+
[
|
81 |
+
'option' => 'menu_minimum_width',
|
82 |
+
'title' => __('Minimum Width', 'responsive-menu'),
|
83 |
+
'label' => __('', 'responsive-menu'),
|
84 |
+
'unit' => 'px'
|
85 |
+
],
|
86 |
+
[
|
87 |
+
'option' => 'menu_links_height',
|
88 |
+
'title' => __('Links Height', 'responsive-menu'),
|
89 |
+
'label' => __('', 'responsive-menu'),
|
90 |
+
'unit' => 'px'
|
91 |
+
],
|
92 |
+
[
|
93 |
+
'option' => 'menu_auto_height',
|
94 |
+
'title' => __('Menu Auto Height', 'responsive-menu'),
|
95 |
+
'label' => __('', 'responsive-menu'),
|
96 |
+
'type' => 'checkbox',
|
97 |
+
'pro' => true
|
98 |
+
],
|
99 |
+
],
|
100 |
+
__('Title', 'responsive-menu') =>
|
101 |
+
[
|
102 |
+
[
|
103 |
+
'option' => 'menu_title',
|
104 |
+
'title' => __('Text', 'responsive-menu'),
|
105 |
+
'label' => __('', 'responsive-menu')
|
106 |
+
],
|
107 |
+
[
|
108 |
+
'option' => 'menu_title_link',
|
109 |
+
'title' => __('Link', 'responsive-menu'),
|
110 |
+
'label' => __('', 'responsive-menu'),
|
111 |
+
],
|
112 |
+
[
|
113 |
+
'option' => 'menu_title_link_location',
|
114 |
+
'title' => __('Link Location', 'responsive-menu'),
|
115 |
+
'label' => __('', 'responsive-menu'),
|
116 |
+
'type' => 'select',
|
117 |
+
'select' => [
|
118 |
+
['value' => '_blank', 'display' => 'New Tab'],
|
119 |
+
['value' => '_self', 'display' => 'Same Page'],
|
120 |
+
['value' => '_parent', 'display' => 'Parent Page'],
|
121 |
+
['value' => '_top', 'display' => 'Full Window Body']
|
122 |
+
]
|
123 |
+
],
|
124 |
+
[
|
125 |
+
'option' => 'menu_title_font_size',
|
126 |
+
'title' => __('Title Font Size', 'responsive-menu'),
|
127 |
+
'label' => __('', 'responsive-menu'),
|
128 |
+
'unit' => 'px'
|
129 |
+
],
|
130 |
+
[
|
131 |
+
'option' => 'menu_title_font_icon',
|
132 |
+
'title' => __('Font Icon', 'responsive-menu'),
|
133 |
+
'label' => __('', 'responsive-menu'),
|
134 |
+
'pro' => true
|
135 |
+
],
|
136 |
+
[
|
137 |
+
'option' => 'menu_title_image',
|
138 |
+
'title' => __('Image', 'responsive-menu'),
|
139 |
+
'label' => __('', 'responsive-menu'),
|
140 |
+
'type' => 'image'
|
141 |
+
],
|
142 |
+
[
|
143 |
+
'option' => 'menu_title_background_colour',
|
144 |
+
'title' => __('Title Background Colour', 'responsive-menu'),
|
145 |
+
'label' => __('', 'responsive-menu'),
|
146 |
+
'type' => 'colour',
|
147 |
+
'semi_pro' => true
|
148 |
+
],
|
149 |
+
[
|
150 |
+
'option' => 'menu_title_background_hover_colour',
|
151 |
+
'title' => __('Title Background Colour Hover', 'responsive-menu'),
|
152 |
+
'label' => __('', 'responsive-menu'),
|
153 |
+
'type' => 'colour',
|
154 |
+
'semi_pro' => true
|
155 |
+
],
|
156 |
+
[
|
157 |
+
'option' => 'menu_title_colour',
|
158 |
+
'title' => __('Title Colour', 'responsive-menu'),
|
159 |
+
'label' => __('', 'responsive-menu'),
|
160 |
+
'type' => 'colour',
|
161 |
+
'semi_pro' => true
|
162 |
+
],
|
163 |
+
[
|
164 |
+
'option' => 'menu_title_hover_colour',
|
165 |
+
'title' => __('Title Hover Colour', 'responsive-menu'),
|
166 |
+
'label' => __('', 'responsive-menu'),
|
167 |
+
'type' => 'colour',
|
168 |
+
'semi_pro' => true
|
169 |
+
]
|
170 |
+
|
171 |
+
],
|
172 |
+
__('Additional Content', 'responsive-menu') =>
|
173 |
+
[
|
174 |
+
[
|
175 |
+
'option' => 'menu_additional_content',
|
176 |
+
'title' => __('Text', 'responsive-menu'),
|
177 |
+
'label' => __('HTMl and Shortcodes can be used', 'responsive-menu'),
|
178 |
+
'type' => 'textarea'
|
179 |
+
],
|
180 |
+
[
|
181 |
+
'option' => 'menu_additional_content_colour',
|
182 |
+
'title' => __('Colour', 'responsive-menu'),
|
183 |
+
'label' => __('', 'responsive-menu'),
|
184 |
+
'type' => 'colour'
|
185 |
+
],
|
186 |
+
],
|
187 |
+
__('Animation', 'responsive-menu') =>
|
188 |
+
[
|
189 |
+
[
|
190 |
+
'option' => 'menu_appear_from',
|
191 |
+
'title' => __('Appear From', 'responsive-menu'),
|
192 |
+
'label' => __('', 'responsive-menu'),
|
193 |
+
'type' => 'select',
|
194 |
+
'select' => [
|
195 |
+
['value' => 'top', 'display' => 'Top'],
|
196 |
+
['value' => 'left', 'display' => 'Left'],
|
197 |
+
['value' => 'right', 'display' => 'Right'],
|
198 |
+
['value' => 'bottom', 'display' => 'Bottom']
|
199 |
+
],
|
200 |
+
],
|
201 |
+
[
|
202 |
+
'option' => 'animation_type',
|
203 |
+
'title' => __('Animation Type', 'responsive-menu'),
|
204 |
+
'label' => __('', 'responsive-menu'),
|
205 |
+
'type' => 'select',
|
206 |
+
'semi_pro' => true,
|
207 |
+
'select' => [
|
208 |
+
['value' => 'slide', 'display' => 'Slide'],
|
209 |
+
['value' => 'push', 'display' => 'Push'],
|
210 |
+
['value' => 'fade', 'display' => 'Fade', 'disabled' => true]
|
211 |
+
]
|
212 |
+
],
|
213 |
+
[
|
214 |
+
'option' => 'page_wrapper',
|
215 |
+
'title' => __('Page Wrapper CSS selector', 'responsive-menu'),
|
216 |
+
'label' => __('This is only needed if you are using the push animation above', 'responsive-menu')
|
217 |
+
],
|
218 |
+
[
|
219 |
+
'option' => 'menu_close_on_body_click',
|
220 |
+
'title' => __('Close Menu on Body Clicks', 'responsive-menu'),
|
221 |
+
'label' => __('', 'responsive-menu'),
|
222 |
+
'type' => 'checkbox'
|
223 |
+
],
|
224 |
+
[
|
225 |
+
'option' => 'menu_close_on_link_click',
|
226 |
+
'title' => __('Close Menu on Link Clicks', 'responsive-menu'),
|
227 |
+
'label' => __('', 'responsive-menu'),
|
228 |
+
'type' => 'checkbox'
|
229 |
+
],
|
230 |
+
],
|
231 |
+
__('Search Box', 'responsive-menu') =>
|
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 |
+
'option' => 'menu_search_box_placholder_colour',
|
259 |
+
'title' => __('Placeholder Colour', 'responsive-menu'),
|
260 |
+
'label' => __('', 'responsive-menu'),
|
261 |
+
'type' => 'colour'
|
262 |
+
]
|
263 |
+
],
|
264 |
+
__('Background Colours', 'responsive-menu') =>
|
265 |
+
[
|
266 |
+
[
|
267 |
+
'option' => 'menu_background_colour',
|
268 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
269 |
+
'label' => __('', 'responsive-menu'),
|
270 |
+
'type' => 'colour',
|
271 |
+
'semi_pro' => true
|
272 |
+
],
|
273 |
+
[
|
274 |
+
'option' => 'menu_item_background_colour',
|
275 |
+
'title' => __('Item Background Colour', 'responsive-menu'),
|
276 |
+
'label' => __('', 'responsive-menu'),
|
277 |
+
'type' => 'colour',
|
278 |
+
'semi_pro' => true
|
279 |
+
],
|
280 |
+
[
|
281 |
+
'option' => 'menu_item_background_hover_colour',
|
282 |
+
'title' => __('Item Background Colour Hover', 'responsive-menu'),
|
283 |
+
'label' => __('', 'responsive-menu'),
|
284 |
+
'type' => 'colour',
|
285 |
+
'semi_pro' => true
|
286 |
+
],
|
287 |
+
[
|
288 |
+
'option' => 'menu_current_item_background_colour',
|
289 |
+
'title' => __('Current Item Background Colour', 'responsive-menu'),
|
290 |
+
'label' => __('', 'responsive-menu'),
|
291 |
+
'type' => 'colour',
|
292 |
+
'semi_pro' => true
|
293 |
+
],
|
294 |
+
[
|
295 |
+
'option' => 'menu_current_item_background_hover_colour',
|
296 |
+
'title' => __('Current Item Background Colour Hover', 'responsive-menu'),
|
297 |
+
'label' => __('', 'responsive-menu'),
|
298 |
+
'type' => 'colour',
|
299 |
+
'semi_pro' => true
|
300 |
+
],
|
301 |
+
],
|
302 |
+
__('Border Colours', 'responsive-menu-pro') =>
|
303 |
+
[
|
304 |
+
[
|
305 |
+
'option' => 'menu_item_border_colour',
|
306 |
+
'title' => __('Item Border Colour', 'responsive-menu'),
|
307 |
+
'label' => __('', 'responsive-menu'),
|
308 |
+
'type' => 'colour',
|
309 |
+
'semi_pro' => true
|
310 |
+
],
|
311 |
+
[
|
312 |
+
'option' => 'menu_item_border_colour_hover',
|
313 |
+
'title' => __('Item Border Colour Hover', 'responsive-menu'),
|
314 |
+
'label' => __('', 'responsive-menu'),
|
315 |
+
'type' => 'colour',
|
316 |
+
'semi_pro' => true
|
317 |
+
],
|
318 |
+
[
|
319 |
+
'option' => 'menu_current_item_border_colour',
|
320 |
+
'title' => __('Current Item Border Colour', 'responsive-menu'),
|
321 |
+
'label' => __('', 'responsive-menu'),
|
322 |
+
'type' => 'colour',
|
323 |
+
'semi_pro' => true
|
324 |
+
],
|
325 |
+
[
|
326 |
+
'option' => 'menu_current_item_border_hover_colour',
|
327 |
+
'title' => __('Current Item Border Colour Hover', 'responsive-menu'),
|
328 |
+
'label' => __('', 'responsive-menu'),
|
329 |
+
'type' => 'colour',
|
330 |
+
'semi_pro' => true
|
331 |
+
]
|
332 |
+
],
|
333 |
+
__('Text Colours', 'responsive-menu') =>
|
334 |
+
[
|
335 |
+
|
336 |
+
[
|
337 |
+
'option' => 'menu_link_colour',
|
338 |
+
'title' => __('Link Colour', 'responsive-menu'),
|
339 |
+
'label' => __('', 'responsive-menu'),
|
340 |
+
'type' => 'colour',
|
341 |
+
'semi_pro' => true
|
342 |
+
],
|
343 |
+
[
|
344 |
+
'option' => 'menu_link_hover_colour',
|
345 |
+
'title' => __('Link Hover Colour', 'responsive-menu'),
|
346 |
+
'label' => __('', 'responsive-menu'),
|
347 |
+
'type' => 'colour',
|
348 |
+
'semi_pro' => true
|
349 |
+
],
|
350 |
+
[
|
351 |
+
'option' => 'menu_current_link_colour',
|
352 |
+
'title' => __('Current Link Colour', 'responsive-menu'),
|
353 |
+
'label' => __('', 'responsive-menu'),
|
354 |
+
'type' => 'colour',
|
355 |
+
'semi_pro' => true
|
356 |
+
],
|
357 |
+
[
|
358 |
+
'option' => 'menu_current_link_hover_colour',
|
359 |
+
'title' => __('Current Link Hover Colour', 'responsive-menu'),
|
360 |
+
'label' => __('', 'responsive-menu'),
|
361 |
+
'type' => 'colour',
|
362 |
+
'semi_pro' => true
|
363 |
+
],
|
364 |
+
|
365 |
+
],
|
366 |
+
__('Text Styling', 'responsive-menu') =>
|
367 |
+
[
|
368 |
+
[
|
369 |
+
'option' => 'menu_font',
|
370 |
+
'title' => __('Font', 'responsive-menu'),
|
371 |
+
'label' => __('', 'responsive-menu')
|
372 |
+
],
|
373 |
+
[
|
374 |
+
'option' => 'menu_font_size',
|
375 |
+
'title' => __('Font Size', 'responsive-menu'),
|
376 |
+
'label' => __('', 'responsive-menu'),
|
377 |
+
'unit' => 'px'
|
378 |
+
],
|
379 |
+
[
|
380 |
+
'option' => 'menu_text_alignment',
|
381 |
+
'title' => __('Text Alignment', 'responsive-menu'),
|
382 |
+
'label' => __('', 'responsive-menu'),
|
383 |
+
'type' => 'select',
|
384 |
+
'select' => [
|
385 |
+
['value' => 'left', 'display' => 'Left'],
|
386 |
+
['value' => 'right', 'display' => 'Right'],
|
387 |
+
['value' => 'center', 'display' => 'Centred'],
|
388 |
+
['value' => 'justify', 'display' => 'Justified']
|
389 |
+
]
|
390 |
+
],
|
391 |
+
[
|
392 |
+
'option' => 'menu_word_wrap',
|
393 |
+
'title' => __('Word Wrap', 'responsive-menu'),
|
394 |
+
'label' => __('', 'responsive-menu'),
|
395 |
+
'type' => 'checkbox',
|
396 |
+
'pro' => true
|
397 |
+
],
|
398 |
+
],
|
399 |
+
__('Page Overlay', 'responsive-menu') =>
|
400 |
+
[
|
401 |
+
[
|
402 |
+
'option' => 'menu_overlay',
|
403 |
+
'title' => __('Add Page Overlay When Menu Open', 'responsive-menu'),
|
404 |
+
'label' => __('', 'responsive-menu'),
|
405 |
+
'type' => 'checkbox',
|
406 |
+
'pro' => true
|
407 |
+
],
|
408 |
+
[
|
409 |
+
'option' => 'menu_overlay_colour',
|
410 |
+
'title' => __('Overlay Colour', 'responsive-menu'),
|
411 |
+
'label' => __('', 'responsive-menu'),
|
412 |
+
'type' => 'colour',
|
413 |
+
'pro' => true
|
414 |
+
],
|
415 |
+
],
|
416 |
+
__('Advanced', 'responsive-menu') =>
|
417 |
+
[
|
418 |
+
[
|
419 |
+
'option' => 'menu_depth',
|
420 |
+
'title' => __('Depth', 'responsive-menu'),
|
421 |
+
'label' => __('', 'responsive-menu'),
|
422 |
+
'type' => 'select',
|
423 |
+
'select' => [
|
424 |
+
['value' => 1, 'display' => 1],
|
425 |
+
['value' => 2, 'display' => 2],
|
426 |
+
['value' => 3, 'display' => 3],
|
427 |
+
['value' => 4, 'display' => 4],
|
428 |
+
['value' => 5, 'display' => 5],
|
429 |
+
]
|
430 |
+
],
|
431 |
+
[
|
432 |
+
'option' => 'menu_disable_scrolling',
|
433 |
+
'title' => __('Disable Scrolling when Menu Active', 'responsive-menu'),
|
434 |
+
'label' => __('', 'responsive-menu'),
|
435 |
+
'type' => 'checkbox',
|
436 |
+
'pro' => true
|
437 |
+
],
|
438 |
+
[
|
439 |
+
'option' => 'theme_location_menu',
|
440 |
+
'title' => __('Theme Location Menu', 'responsive-menu'),
|
441 |
+
'label' => __('', 'responsive-menu'),
|
442 |
+
'type' => 'select',
|
443 |
+
'select' => $location_menus
|
444 |
+
]
|
445 |
+
],
|
446 |
+
],
|
447 |
+
|
448 |
+
/*
|
449 |
+
*
|
450 |
+
* BUTTON
|
451 |
+
*
|
452 |
+
*/
|
453 |
+
|
454 |
+
__('Button', 'responsive-menu') => [
|
455 |
+
__('Animation', 'responsive-menu') =>
|
456 |
+
[
|
457 |
+
[
|
458 |
+
'option' => 'button_click_animation',
|
459 |
+
'title' => __('Animation Type', 'responsive-menu'),
|
460 |
+
'label' => __('To see all animations in action please visit <a href="https://jonsuh.com/hamburgers/" target="_blank">this page</a>', 'responsive-menu'),
|
461 |
+
'type' => 'select',
|
462 |
+
'select' => [
|
463 |
+
['value' => 'off', 'display' => 'Off'],
|
464 |
+
['value' => '3dx', 'display' => '3DX', 'disabled' => true],
|
465 |
+
['value' => '3dx-r', 'display' => '3DX Reverse', 'disabled' => true],
|
466 |
+
['value' => '3dy', 'display' => '3DY', 'disabled' => true],
|
467 |
+
['value' => '3dy-r', 'display' => '3DY Reverse', 'disabled' => true],
|
468 |
+
['value' => 'arrow', 'display' => 'Arrow', 'disabled' => true],
|
469 |
+
['value' => 'arrow-r', 'display' => 'Arrow Reverse', 'disabled' => true],
|
470 |
+
['value' => 'arrowalt', 'display' => 'Arrow Alt', 'disabled' => true],
|
471 |
+
['value' => 'arrowalt-r', 'display' => 'Arrow Alt Reverse', 'disabled' => true],
|
472 |
+
['value' => 'boring', 'display' => 'Boring'],
|
473 |
+
['value' => 'collapse', 'display' => 'Collapse', 'disabled' => true],
|
474 |
+
['value' => 'collapse-r', 'display' => 'Collapse Reverse', 'disabled' => true],
|
475 |
+
['value' => 'elastic', 'display' => 'Elastic', 'disabled' => true],
|
476 |
+
['value' => 'elastic-r', 'display' => 'Elastic Reverse', 'disabled' => true],
|
477 |
+
['value' => 'emphatic', 'display' => 'Emphatic', 'disabled' => true],
|
478 |
+
['value' => 'emphatic-r', 'display' => 'Emphatic Reverse', 'disabled' => true],
|
479 |
+
['value' => 'slider', 'display' => 'Slider', 'disabled' => true],
|
480 |
+
['value' => 'slider-r', 'display' => 'Slider Reverse', 'disabled' => true],
|
481 |
+
['value' => 'spin', 'display' => 'Spin', 'disabled' => true],
|
482 |
+
['value' => 'spin-r', 'display' => 'Spin Reverse', 'disabled' => true],
|
483 |
+
['value' => 'spring', 'display' => 'Spring', 'disabled' => true],
|
484 |
+
['value' => 'spring-r', 'display' => 'Spring Reverse', 'disabled' => true],
|
485 |
+
['value' => 'stand', 'display' => 'Stand', 'disabled' => true],
|
486 |
+
['value' => 'stand-r', 'display' => 'Stand Reverse', 'disabled' => true],
|
487 |
+
['value' => 'squeeze', 'display' => 'Squeeze', 'disabled' => true],
|
488 |
+
['value' => 'vortex', 'display' => 'Vortex', 'disabled' => true],
|
489 |
+
['value' => 'vortex-r', 'display' => 'Vortex Reverse', 'disabled' => true]
|
490 |
+
],
|
491 |
+
'semi_pro' => true
|
492 |
+
],
|
493 |
+
[
|
494 |
+
'option' => 'button_position_type',
|
495 |
+
'title' => __('Position Type', 'responsive-menu'),
|
496 |
+
'label' => __('', 'responsive-menu'),
|
497 |
+
'type' => 'select',
|
498 |
+
'select' => [
|
499 |
+
['value' => 'absolute', 'display' => 'Absolute'],
|
500 |
+
['value' => 'fixed', 'display' => 'Fixed'],
|
501 |
+
['value' => 'relative', 'display' => 'Relative']
|
502 |
+
]
|
503 |
+
],
|
504 |
+
[
|
505 |
+
'option' => 'button_push_with_animation',
|
506 |
+
'title' => __('Push Button with Animation', 'responsive-menu'),
|
507 |
+
'label' => __('', 'responsive-menu'),
|
508 |
+
'type' => 'checkbox'
|
509 |
+
],
|
510 |
+
],
|
511 |
+
__('Location', 'responsive-menu') =>
|
512 |
+
[
|
513 |
+
[
|
514 |
+
'option' => 'button_distance_from_side',
|
515 |
+
'title' => __('Distance from Side', 'responsive-menu'),
|
516 |
+
'label' => __('', 'responsive-menu'),
|
517 |
+
'unit' => '%'
|
518 |
+
],
|
519 |
+
[
|
520 |
+
'option' => 'button_left_or_right',
|
521 |
+
'title' => __('Button Side', 'responsive-menu'),
|
522 |
+
'label' => __('', 'responsive-menu'),
|
523 |
+
'type' => 'select',
|
524 |
+
'select' => [
|
525 |
+
['value' => 'left', 'display' => 'Left'],
|
526 |
+
['value' => 'right', 'display' => 'Right']
|
527 |
+
]
|
528 |
+
],
|
529 |
+
[
|
530 |
+
'option' => 'button_top',
|
531 |
+
'title' => __('Distance from Top', 'responsive-menu'),
|
532 |
+
'label' => __('', 'responsive-menu'),
|
533 |
+
'unit' => 'px'
|
534 |
+
],
|
535 |
+
],
|
536 |
+
__('Container Sizing', 'responsive-menu') =>
|
537 |
+
[
|
538 |
+
[
|
539 |
+
'option' => 'button_height',
|
540 |
+
'title' => __('Height', 'responsive-menu'),
|
541 |
+
'label' => __('', 'responsive-menu'),
|
542 |
+
'unit' => 'px'
|
543 |
+
],
|
544 |
+
[
|
545 |
+
'option' => 'button_width',
|
546 |
+
'title' => __('Width', 'responsive-menu'),
|
547 |
+
'label' => __('', 'responsive-menu'),
|
548 |
+
'unit' => 'px'
|
549 |
+
],
|
550 |
+
],
|
551 |
+
__('Hamburger Sizing', 'responsive-menu') =>
|
552 |
+
[
|
553 |
+
[
|
554 |
+
'option' => 'button_line_height',
|
555 |
+
'title' => __('Line Height', 'responsive-menu'),
|
556 |
+
'label' => __('', 'responsive-menu'),
|
557 |
+
'unit' => 'px'
|
558 |
+
],
|
559 |
+
[
|
560 |
+
'option' => 'button_line_margin',
|
561 |
+
'title' => __('Line Margin', 'responsive-menu'),
|
562 |
+
'label' => __('', 'responsive-menu'),
|
563 |
+
'unit' => 'px'
|
564 |
+
],
|
565 |
+
[
|
566 |
+
'option' => 'button_line_width',
|
567 |
+
'title' => __('Line Width', 'responsive-menu'),
|
568 |
+
'label' => __('', 'responsive-menu'),
|
569 |
+
'unit' => 'px'
|
570 |
+
],
|
571 |
+
|
572 |
+
],
|
573 |
+
__('Background Colours', 'responsive-menu') => [
|
574 |
+
[
|
575 |
+
'option' => 'button_background_colour',
|
576 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
577 |
+
'label' => __('', 'responsive-menu'),
|
578 |
+
'type' => 'colour',
|
579 |
+
'semi_pro' => true
|
580 |
+
],
|
581 |
+
[
|
582 |
+
'option' => 'button_background_colour_hover',
|
583 |
+
'title' => __('Background Hover Colour', 'responsive-menu'),
|
584 |
+
'label' => __('', 'responsive-menu'),
|
585 |
+
'type' => 'colour',
|
586 |
+
'semi_pro' => true
|
587 |
+
],
|
588 |
+
[
|
589 |
+
'option' => 'button_transparent_background',
|
590 |
+
'title' => __('Transparent Background', 'responsive-menu'),
|
591 |
+
'label' => __('', 'responsive-menu'),
|
592 |
+
'type' => 'checkbox'
|
593 |
+
]
|
594 |
+
],
|
595 |
+
__('Line Colours', 'responsive-menu') => [
|
596 |
+
[
|
597 |
+
'option' => 'button_line_colour',
|
598 |
+
'title' => __('Line Colour', 'responsive-menu'),
|
599 |
+
'label' => __('', 'responsive-menu'),
|
600 |
+
'type' => 'colour',
|
601 |
+
'semi_pro' => true
|
602 |
+
],
|
603 |
+
],
|
604 |
+
__('Title', 'responsive-menu') => [
|
605 |
+
[
|
606 |
+
'option' => 'button_title',
|
607 |
+
'title' => __('Text', 'responsive-menu'),
|
608 |
+
'label' => __('', 'responsive-menu'),
|
609 |
+
],
|
610 |
+
[
|
611 |
+
'option' => 'button_text_colour',
|
612 |
+
'title' => __('Colour', 'responsive-menu'),
|
613 |
+
'label' => __('', 'responsive-menu'),
|
614 |
+
'type' => 'colour',
|
615 |
+
'semi_pro' => true
|
616 |
+
],
|
617 |
+
[
|
618 |
+
'option' => 'button_title_position',
|
619 |
+
'title' => __('Title Text Position', 'responsive-menu'),
|
620 |
+
'label' => __('', 'responsive-menu'),
|
621 |
+
'type' => 'select',
|
622 |
+
'select' => [
|
623 |
+
['value' => 'left', 'display' => 'Left'],
|
624 |
+
['value' => 'right', 'display' => 'Right'],
|
625 |
+
['value' => 'top', 'display' => 'Top'],
|
626 |
+
['value' => 'bottom', 'display' => 'Bottom']
|
627 |
+
]
|
628 |
+
],
|
629 |
+
[
|
630 |
+
'option' => 'button_font',
|
631 |
+
'title' => __('Font', 'responsive-menu'),
|
632 |
+
'label' => __('', 'responsive-menu'),
|
633 |
+
],
|
634 |
+
[
|
635 |
+
'option' => 'button_font_size',
|
636 |
+
'title' => __('Font Size', 'responsive-menu'),
|
637 |
+
'label' => __('', 'responsive-menu'),
|
638 |
+
'unit' => 'px'
|
639 |
+
],
|
640 |
+
[
|
641 |
+
'option' => 'button_title_line_height',
|
642 |
+
'title' => __('Line Height', 'responsive-menu'),
|
643 |
+
'label' => __('', 'responsive-menu'),
|
644 |
+
'unit' => 'px'
|
645 |
+
],
|
646 |
+
],
|
647 |
+
__('Image', 'responsive-menu') =>
|
648 |
+
[
|
649 |
+
[
|
650 |
+
'option' => 'button_font_icon',
|
651 |
+
'title' => __('Font Icon', 'responsive-menu'),
|
652 |
+
'label' => __('', 'responsive-menu'),
|
653 |
+
'pro' => true
|
654 |
+
],
|
655 |
+
[
|
656 |
+
'option' => 'button_font_icon_when_clicked',
|
657 |
+
'title' => __('Font Icon When Clicked', 'responsive-menu'),
|
658 |
+
'label' => __('', 'responsive-menu'),
|
659 |
+
'pro' => true
|
660 |
+
],
|
661 |
+
[
|
662 |
+
'option' => 'button_image',
|
663 |
+
'title' => __('Image', 'responsive-menu'),
|
664 |
+
'label' => __('', 'responsive-menu'),
|
665 |
+
'type' => 'image'
|
666 |
+
],
|
667 |
+
[
|
668 |
+
'option' => 'button_image_when_clicked',
|
669 |
+
'title' => __('Image When Clicked', 'responsive-menu'),
|
670 |
+
'label' => __('', 'responsive-menu'),
|
671 |
+
'type' => 'image'
|
672 |
+
]
|
673 |
+
],
|
674 |
+
__('Advanced', 'responsive-menu') =>
|
675 |
+
[
|
676 |
+
[
|
677 |
+
'option' => 'button_click_trigger',
|
678 |
+
'title' => __('Trigger', 'responsive-menu'),
|
679 |
+
'label' => __('', 'responsive-menu'),
|
680 |
+
],
|
681 |
+
],
|
682 |
+
],
|
683 |
+
|
684 |
+
/*
|
685 |
+
*
|
686 |
+
* SUB MENUS
|
687 |
+
*
|
688 |
+
*/
|
689 |
+
__('Sub-Menus', 'responsive-menu') => [
|
690 |
+
|
691 |
+
__('Toggle Button Background Colours', 'responsive-menu') =>
|
692 |
+
[
|
693 |
+
[
|
694 |
+
'option' => 'menu_sub_arrow_background_colour',
|
695 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
696 |
+
'label' => __('', 'responsive-menu'),
|
697 |
+
'type' => 'colour',
|
698 |
+
'semi_pro' => true
|
699 |
+
],
|
700 |
+
[
|
701 |
+
'option' => 'menu_sub_arrow_background_hover_colour',
|
702 |
+
'title' => __('Background Hover Colour', 'responsive-menu'),
|
703 |
+
'label' => __('', 'responsive-menu'),
|
704 |
+
'type' => 'colour',
|
705 |
+
'semi_pro' => true
|
706 |
+
],
|
707 |
+
[
|
708 |
+
'option' => 'menu_sub_arrow_background_colour_active',
|
709 |
+
'title' => __('Background Colour Active', 'responsive-menu'),
|
710 |
+
'label' => __('', 'responsive-menu'),
|
711 |
+
'type' => 'colour',
|
712 |
+
'pro' => true
|
713 |
+
],
|
714 |
+
[
|
715 |
+
'option' => 'menu_sub_arrow_background_hover_colour_active',
|
716 |
+
'title' => __('Background Hover Colour Active', 'responsive-menu'),
|
717 |
+
'label' => __('', 'responsive-menu'),
|
718 |
+
'type' => 'colour',
|
719 |
+
'pro' => true
|
720 |
+
],
|
721 |
+
],
|
722 |
+
__('Toggle Button Border Colours', 'responsive-menu') =>
|
723 |
+
[
|
724 |
+
[
|
725 |
+
'option' => 'menu_sub_arrow_border_colour',
|
726 |
+
'title' => __('Border Colour', 'responsive-menu'),
|
727 |
+
'label' => __('', 'responsive-menu'),
|
728 |
+
'type' => 'colour',
|
729 |
+
'semi_pro' => true
|
730 |
+
],
|
731 |
+
[
|
732 |
+
'option' => 'menu_sub_arrow_border_hover_colour',
|
733 |
+
'title' => __('Border Hover Colour', 'responsive-menu'),
|
734 |
+
'label' => __('', 'responsive-menu'),
|
735 |
+
'type' => 'colour',
|
736 |
+
'semi_pro' => true
|
737 |
+
],
|
738 |
+
[
|
739 |
+
'option' => 'menu_sub_arrow_border_colour_active',
|
740 |
+
'title' => __('Border Colour Active', 'responsive-menu'),
|
741 |
+
'label' => __('', 'responsive-menu'),
|
742 |
+
'type' => 'colour',
|
743 |
+
'pro' => true
|
744 |
+
],
|
745 |
+
[
|
746 |
+
'option' => 'menu_sub_arrow_border_hover_colour_active',
|
747 |
+
'title' => __('Border Hover Colour Active', 'responsive-menu'),
|
748 |
+
'label' => __('', 'responsive-menu'),
|
749 |
+
'type' => 'colour',
|
750 |
+
'pro' => true
|
751 |
+
],
|
752 |
+
],
|
753 |
+
__('Toggle Button Icon Colours', 'responsive-menu') =>
|
754 |
+
[
|
755 |
+
[
|
756 |
+
'option' => 'menu_sub_arrow_shape_colour',
|
757 |
+
'title' => __('Icon Colour', 'responsive-menu'),
|
758 |
+
'label' => __('', 'responsive-menu'),
|
759 |
+
'type' => 'colour',
|
760 |
+
'semi_pro' => true
|
761 |
+
],
|
762 |
+
[
|
763 |
+
'option' => 'menu_sub_arrow_shape_hover_colour',
|
764 |
+
'title' => __('Icon Hover Colour', 'responsive-menu'),
|
765 |
+
'label' => __('', 'responsive-menu'),
|
766 |
+
'type' => 'colour',
|
767 |
+
'semi_pro' => true
|
768 |
+
],
|
769 |
+
[
|
770 |
+
'option' => 'menu_sub_arrow_shape_colour_active',
|
771 |
+
'title' => __('Icon Colour Active', 'responsive-menu'),
|
772 |
+
'label' => __('', 'responsive-menu'),
|
773 |
+
'type' => 'colour',
|
774 |
+
'pro' => true
|
775 |
+
],
|
776 |
+
[
|
777 |
+
'option' => 'menu_sub_arrow_shape_hover_colour_active',
|
778 |
+
'title' => __('Icon Hover Colour Active', 'responsive-menu'),
|
779 |
+
'label' => __('', 'responsive-menu'),
|
780 |
+
'type' => 'colour',
|
781 |
+
'pro' => true
|
782 |
+
],
|
783 |
+
],
|
784 |
+
__('Animations', 'responsive-menu') =>
|
785 |
+
[
|
786 |
+
[
|
787 |
+
'option' => 'accordion_animation',
|
788 |
+
'title' => __('Use Accordion Animation', 'responsive-menu'),
|
789 |
+
'label' => __('', 'responsive-menu'),
|
790 |
+
'type' => 'checkbox'
|
791 |
+
],
|
792 |
+
[
|
793 |
+
'option' => 'auto_expand_all_submenus',
|
794 |
+
'title' => __('Auto Expand All Submenus', 'responsive-menu'),
|
795 |
+
'label' => __('', 'responsive-menu'),
|
796 |
+
'type' => 'checkbox'
|
797 |
+
],
|
798 |
+
[
|
799 |
+
'option' => 'auto_expand_current_submenus',
|
800 |
+
'title' => __('Auto Expand Current Submenus', 'responsive-menu'),
|
801 |
+
'label' => __('', 'responsive-menu'),
|
802 |
+
'type' => 'checkbox'
|
803 |
+
],
|
804 |
+
[
|
805 |
+
'option' => 'menu_item_click_to_trigger_submenu',
|
806 |
+
'title' => __('Disable Parent Item Clicks', 'responsive-menu'),
|
807 |
+
'label' => __('', 'responsive-menu'),
|
808 |
+
'type' => 'checkbox'
|
809 |
+
|
810 |
+
],
|
811 |
+
],
|
812 |
+
__('Sizing', 'responsive-menu') =>
|
813 |
+
[
|
814 |
+
[
|
815 |
+
'option' => 'submenu_arrow_height',
|
816 |
+
'title' => __('Toggle Button Height', 'responsive-menu'),
|
817 |
+
'label' => __('', 'responsive-menu'),
|
818 |
+
'unit' => 'px'
|
819 |
+
],
|
820 |
+
[
|
821 |
+
'option' => 'submenu_arrow_width',
|
822 |
+
'title' => __('Toggle Button Width', 'responsive-menu'),
|
823 |
+
'label' => __('', 'responsive-menu'),
|
824 |
+
'unit' => 'px'
|
825 |
+
],
|
826 |
+
|
827 |
+
],
|
828 |
+
__('Toggle Icons', 'responsive-menu') =>
|
829 |
+
[
|
830 |
+
[
|
831 |
+
'option' => 'active_arrow_font_icon',
|
832 |
+
'title' => __('Font Icon Active', 'responsive-menu'),
|
833 |
+
'label' => __('', 'responsive-menu'),
|
834 |
+
'pro' => true
|
835 |
+
],
|
836 |
+
[
|
837 |
+
'option' => 'inactive_arrow_font_icon',
|
838 |
+
'title' => __('Font Icon Inactive', 'responsive-menu'),
|
839 |
+
'label' => __('', 'responsive-menu'),
|
840 |
+
'pro' => true
|
841 |
+
],
|
842 |
+
[
|
843 |
+
'option' => 'active_arrow_shape',
|
844 |
+
'title' => __('HTML Shape Active', 'responsive-menu'),
|
845 |
+
'label' => __('', 'responsive-menu')
|
846 |
+
],
|
847 |
+
[
|
848 |
+
'option' => 'inactive_arrow_shape',
|
849 |
+
'title' => __('HTML Shape Inactive', 'responsive-menu'),
|
850 |
+
'label' => __('', 'responsive-menu')
|
851 |
+
],
|
852 |
+
[
|
853 |
+
'option' => 'active_arrow_image',
|
854 |
+
'title' => __('Image Active', 'responsive-menu'),
|
855 |
+
'label' => __('', 'responsive-menu'),
|
856 |
+
'type' => 'image'
|
857 |
+
],
|
858 |
+
[
|
859 |
+
'option' => 'inactive_arrow_image',
|
860 |
+
'title' => __('Image Inactive', 'responsive-menu'),
|
861 |
+
'label' => __('', 'responsive-menu'),
|
862 |
+
'type' => 'image'
|
863 |
+
],
|
864 |
+
[
|
865 |
+
'option' => 'arrow_position',
|
866 |
+
'title' => __('Icon Position', 'responsive-menu'),
|
867 |
+
'label' => __('', 'responsive-menu'),
|
868 |
+
'type' => 'select',
|
869 |
+
'select' => [
|
870 |
+
['value' => 'left', 'display' => 'Left'],
|
871 |
+
['value' => 'right', 'display' => 'Right']
|
872 |
+
],
|
873 |
+
]
|
874 |
+
],
|
875 |
+
],
|
876 |
+
|
877 |
+
/*
|
878 |
+
*
|
879 |
+
* TECHNICAL
|
880 |
+
*
|
881 |
+
*/
|
882 |
+
|
883 |
+
__('Technical', 'responsive-menu') => [
|
884 |
+
__('Scripts', 'responsive-menu') => [
|
885 |
+
[
|
886 |
+
'option' => 'external_files',
|
887 |
+
'title' => __('Use External Files?', 'responsive-menu'),
|
888 |
+
'label' => __('This will create external files for CSS and JavaScript', 'responsive-menu'),
|
889 |
+
'type' => 'checkbox'
|
890 |
+
],
|
891 |
+
[
|
892 |
+
'option' => 'minify_scripts',
|
893 |
+
'title' => __('Minify Scripts?', 'responsive-menu'),
|
894 |
+
'label' => __('This will minify CSS and JavaScript output', 'responsive-menu'),
|
895 |
+
'type' => 'checkbox'
|
896 |
+
],
|
897 |
+
[
|
898 |
+
'option' => 'scripts_in_footer',
|
899 |
+
'title' => __('Place Scripts In Footer?', 'responsive-menu'),
|
900 |
+
'label' => __('This will place the JavaScript file in the footer', 'responsive-menu'),
|
901 |
+
'type' => 'checkbox'
|
902 |
+
]
|
903 |
+
],
|
904 |
+
__('Menu', 'responsive-menu') => [
|
905 |
+
[
|
906 |
+
'option' => 'custom_walker',
|
907 |
+
'title' => __('Custom Walker', 'responsive-menu'),
|
908 |
+
'label' => __('Warning: For extremely advanced use only', 'responsive-menu'),
|
909 |
+
],
|
910 |
+
[
|
911 |
+
'option' => 'mobile_only',
|
912 |
+
'title' => __('Show on mobile devices only?', 'responsive-menu'),
|
913 |
+
'label' => __('This will make it not a responsive menu but a "mobile menu"', 'responsive-menu'),
|
914 |
+
'type' => 'checkbox',
|
915 |
+
'pro' => true
|
916 |
+
],
|
917 |
+
[
|
918 |
+
'option' => 'shortcode',
|
919 |
+
'title' => __('Use Shortcode?', 'responsive-menu'),
|
920 |
+
'label' => __('Please place [responsive_menu] in your files to use. Full documentation can be found <a target="_blank" href="https://responsive.menu/docs/advanced-setup/shortcode/">here</a>', 'responsive-menu'),
|
921 |
+
'type' => 'checkbox'
|
922 |
+
]
|
923 |
+
],
|
924 |
+
__('Animation Speeds', 'responsive-menu') =>
|
925 |
+
[
|
926 |
+
[
|
927 |
+
'option' => 'animation_speed',
|
928 |
+
'title' => __('Animation Speed', 'responsive-menu'),
|
929 |
+
'label' => __('', 'responsive-menu'),
|
930 |
+
'unit' => 's'
|
931 |
+
],
|
932 |
+
[
|
933 |
+
'option' => 'transition_speed',
|
934 |
+
'title' => __('Transition Speed', 'responsive-menu'),
|
935 |
+
'label' => __('', 'responsive-menu'),
|
936 |
+
'unit' => 's'
|
937 |
+
]
|
938 |
+
],
|
939 |
+
],
|
940 |
+
/*
|
941 |
+
*
|
942 |
+
* CUSTOM CSS
|
943 |
+
*
|
944 |
+
*/
|
945 |
+
|
946 |
+
__('Custom CSS', 'responsive-menu') => [
|
947 |
+
__('CSS', 'responsive-menu') => [
|
948 |
+
[
|
949 |
+
'option' => 'custom_css',
|
950 |
+
'title' => __('Custom CSS', 'responsive-menu'),
|
951 |
+
'label' => __('', 'responsive-menu'),
|
952 |
+
'type' => 'textarea',
|
953 |
+
'pro' => true
|
954 |
+
]
|
955 |
+
]
|
956 |
+
],
|
957 |
+
/*
|
958 |
+
*
|
959 |
+
* HEADER BAR
|
960 |
+
*
|
961 |
+
*/
|
962 |
+
__('Header Bar', 'responsive-menu') => [
|
963 |
+
__('Setup', 'responsive-menu') => [
|
964 |
+
[
|
965 |
+
'option' => 'use_header_bar',
|
966 |
+
'title' => __('Use Header Bar', 'responsive-menu'),
|
967 |
+
'label' => __('', 'responsive-menu'),
|
968 |
+
'type' => 'checkbox',
|
969 |
+
'pro' => true
|
970 |
+
],
|
971 |
+
[
|
972 |
+
'option' => 'header_bar_position_type',
|
973 |
+
'title' => __('Position Type', 'responsive-menu'),
|
974 |
+
'label' => __('', 'responsive-menu'),
|
975 |
+
'type' => 'select',
|
976 |
+
'select' => [
|
977 |
+
['value' => 'fixed', 'display' => 'Fixed'],
|
978 |
+
['value' => 'relative', 'display' => 'Relative'],
|
979 |
+
['value' => 'absolute', 'display' => 'Absolute']
|
980 |
+
],
|
981 |
+
'pro' => true
|
982 |
+
],
|
983 |
+
[
|
984 |
+
'option' => 'header_bar_breakpoint',
|
985 |
+
'title' => __('Breakpoint', 'responsive-menu'),
|
986 |
+
'label' => __('', 'responsive-menu'),
|
987 |
+
'pro' => true
|
988 |
+
],
|
989 |
+
],
|
990 |
+
__('Ordering', 'responsive-menu') => [
|
991 |
+
[
|
992 |
+
'option' => 'header_bar_items_order',
|
993 |
+
'title' => __('Ordering', 'responsive-menu'),
|
994 |
+
'label' => __('', 'responsive-menu'),
|
995 |
+
'type' => 'header_ordering',
|
996 |
+
'pro' => true
|
997 |
+
]
|
998 |
+
],
|
999 |
+
__('Logo', 'responsive-menu') => [
|
1000 |
+
[
|
1001 |
+
'option' => 'header_bar_logo',
|
1002 |
+
'title' => __('Image', 'responsive-menu'),
|
1003 |
+
'label' => __('', 'responsive-menu'),
|
1004 |
+
'type' => 'image',
|
1005 |
+
'pro' => true
|
1006 |
+
],
|
1007 |
+
[
|
1008 |
+
'option' => 'header_bar_logo_link',
|
1009 |
+
'title' => __('Link', 'responsive-menu'),
|
1010 |
+
'label' => __('', 'responsive-menu'),
|
1011 |
+
'pro' => true
|
1012 |
+
],
|
1013 |
+
],
|
1014 |
+
__('Title', 'responsive-menu') => [
|
1015 |
+
[
|
1016 |
+
'option' => 'header_bar_title',
|
1017 |
+
'title' => __('Title', 'responsive-menu'),
|
1018 |
+
'label' => __('', 'responsive-menu'),
|
1019 |
+
'pro' => true
|
1020 |
+
]
|
1021 |
+
],
|
1022 |
+
__('Content', 'responsive-menu') => [
|
1023 |
+
[
|
1024 |
+
'option' => 'header_bar_html_content',
|
1025 |
+
'title' => __('HTML Content', 'responsive-menu'),
|
1026 |
+
'label' => __('Accepts shortcodes', 'responsive-menu'),
|
1027 |
+
'type' => 'textarea',
|
1028 |
+
'pro' => true
|
1029 |
+
]
|
1030 |
+
],
|
1031 |
+
__('Text', 'responsive-menu') => [
|
1032 |
+
[
|
1033 |
+
'option' => 'header_bar_font',
|
1034 |
+
'title' => __('Font', 'responsive-menu'),
|
1035 |
+
'label' => __('', 'responsive-menu'),
|
1036 |
+
'pro' => true
|
1037 |
+
],
|
1038 |
+
[
|
1039 |
+
'option' => 'header_bar_font_size',
|
1040 |
+
'title' => __('Font Size', 'responsive-menu'),
|
1041 |
+
'label' => __('', 'responsive-menu'),
|
1042 |
+
'unit' => 'px',
|
1043 |
+
'pro' => true
|
1044 |
+
],
|
1045 |
+
],
|
1046 |
+
__('Sizing', 'responsive-menu') => [
|
1047 |
+
[
|
1048 |
+
'option' => 'header_bar_height',
|
1049 |
+
'title' => __('Height', 'responsive-menu'),
|
1050 |
+
'label' => __('', 'responsive-menu'),
|
1051 |
+
'unit' => 'px',
|
1052 |
+
'pro' => true
|
1053 |
+
],
|
1054 |
+
],
|
1055 |
+
__('Colours', 'responsive-menu') => [
|
1056 |
+
[
|
1057 |
+
'option' => 'header_bar_background_color',
|
1058 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
1059 |
+
'label' => __('', 'responsive-menu'),
|
1060 |
+
'type' => 'colour',
|
1061 |
+
'pro' => true
|
1062 |
+
],
|
1063 |
+
[
|
1064 |
+
'option' => 'header_bar_text_color',
|
1065 |
+
'title' => __('Text Colour', 'responsive-menu'),
|
1066 |
+
'label' => __('', 'responsive-menu'),
|
1067 |
+
'type' => 'colour',
|
1068 |
+
'pro' => true
|
1069 |
+
],
|
1070 |
+
],
|
1071 |
+
],
|
1072 |
+
|
1073 |
+
/*
|
1074 |
+
*
|
1075 |
+
* SINGLE MENU
|
1076 |
+
*
|
1077 |
+
*/
|
1078 |
+
__('Single Menu', 'responsive-menu') => [
|
1079 |
+
__('Setup', 'responsive-menu') => [
|
1080 |
+
[
|
1081 |
+
'option' => 'use_single_menu',
|
1082 |
+
'title' => __('Use Single Menu', 'responsive-menu'),
|
1083 |
+
'label' => __('To use this option you must turn the Shortcode option on and use the shortcode in your theme where you want the menu to appear', 'responsive-menu'),
|
1084 |
+
'type' => 'checkbox',
|
1085 |
+
'pro' => true
|
1086 |
+
]
|
1087 |
+
],
|
1088 |
+
__('Menu Colours', 'responsive-menu') => [
|
1089 |
+
[
|
1090 |
+
'option' => 'single_menu_item_background_colour',
|
1091 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
1092 |
+
'label' => __('', 'responsive-menu'),
|
1093 |
+
'type' => 'colour',
|
1094 |
+
'pro' => true
|
1095 |
+
],
|
1096 |
+
[
|
1097 |
+
'option' => 'single_menu_item_background_colour_hover',
|
1098 |
+
'title' => __('Background Hover Colour', 'responsive-menu'),
|
1099 |
+
'label' => __('', 'responsive-menu'),
|
1100 |
+
'type' => 'colour',
|
1101 |
+
'pro' => true
|
1102 |
+
],
|
1103 |
+
[
|
1104 |
+
'option' => 'single_menu_item_link_colour',
|
1105 |
+
'title' => __('Text Colour', 'responsive-menu'),
|
1106 |
+
'label' => __('', 'responsive-menu'),
|
1107 |
+
'type' => 'colour',
|
1108 |
+
'pro' => true
|
1109 |
+
],
|
1110 |
+
[
|
1111 |
+
'option' => 'single_menu_item_link_colour_hover',
|
1112 |
+
'title' => __('Text Hover Colour', 'responsive-menu'),
|
1113 |
+
'label' => __('', 'responsive-menu'),
|
1114 |
+
'type' => 'colour',
|
1115 |
+
'pro' => true
|
1116 |
+
],
|
1117 |
+
],
|
1118 |
+
__('Sub-Menu Colours', 'responsive-menu') => [
|
1119 |
+
[
|
1120 |
+
'option' => 'single_menu_item_submenu_background_colour',
|
1121 |
+
'title' => __('Background Colour', 'responsive-menu'),
|
1122 |
+
'label' => __('', 'responsive-menu'),
|
1123 |
+
'type' => 'colour',
|
1124 |
+
'pro' => true
|
1125 |
+
],
|
1126 |
+
[
|
1127 |
+
'option' => 'single_menu_item_submenu_background_colour_hover',
|
1128 |
+
'title' => __('Background Hover Colour', 'responsive-menu'),
|
1129 |
+
'label' => __('', 'responsive-menu'),
|
1130 |
+
'type' => 'colour',
|
1131 |
+
'pro' => true
|
1132 |
+
],
|
1133 |
+
[
|
1134 |
+
'option' => 'single_menu_item_submenu_link_colour',
|
1135 |
+
'title' => __('Text Colour', 'responsive-menu'),
|
1136 |
+
'label' => __('', 'responsive-menu'),
|
1137 |
+
'type' => 'colour',
|
1138 |
+
'pro' => true
|
1139 |
+
],
|
1140 |
+
[
|
1141 |
+
'option' => 'single_menu_item_submenu_link_colour_hover',
|
1142 |
+
'title' => __('Text Hover Colour', 'responsive-menu'),
|
1143 |
+
'label' => __('', 'responsive-menu'),
|
1144 |
+
'type' => 'colour',
|
1145 |
+
'pro' => true
|
1146 |
+
]
|
1147 |
+
],
|
1148 |
+
__('Menu Styling', 'responsive-menu') => [
|
1149 |
+
[
|
1150 |
+
'option' => 'single_menu_font',
|
1151 |
+
'title' => __('Font', 'responsive-menu'),
|
1152 |
+
'label' => __('', 'responsive-menu'),
|
1153 |
+
'pro' => true
|
1154 |
+
],
|
1155 |
+
[
|
1156 |
+
'option' => 'single_menu_font_size',
|
1157 |
+
'title' => __('Font Size', 'responsive-menu'),
|
1158 |
+
'label' => __('', 'responsive-menu'),
|
1159 |
+
'unit' => 'px',
|
1160 |
+
'pro' => true
|
1161 |
+
]
|
1162 |
+
],
|
1163 |
+
__('Sub-Menu Styling', 'responsive-menu') => [
|
1164 |
+
[
|
1165 |
+
'option' => 'single_menu_submenu_font',
|
1166 |
+
'title' => __('Font', 'responsive-menu'),
|
1167 |
+
'label' => __('', 'responsive-menu'),
|
1168 |
+
'pro' => true
|
1169 |
+
],
|
1170 |
+
[
|
1171 |
+
'option' => 'single_menu_submenu_font_size',
|
1172 |
+
'title' => __('Font Size', 'responsive-menu'),
|
1173 |
+
'label' => __('', 'responsive-menu'),
|
1174 |
+
'unit' => 'px',
|
1175 |
+
'pro' => true
|
1176 |
+
]
|
1177 |
+
],
|
1178 |
+
__('Menu Sizing', 'responsive-menu') => [
|
1179 |
+
[
|
1180 |
+
'option' => 'single_menu_height',
|
1181 |
+
'title' => __('Height', 'responsive-menu'),
|
1182 |
+
'label' => __('', 'responsive-menu'),
|
1183 |
+
'unit' => 'px',
|
1184 |
+
'pro' => true
|
1185 |
+
]
|
1186 |
+
],
|
1187 |
+
__('Sub-Menu Sizing', 'responsive-menu') => [
|
1188 |
+
[
|
1189 |
+
'option' => 'single_menu_submenu_height',
|
1190 |
+
'title' => __('Height', 'responsive-menu'),
|
1191 |
+
'label' => __('', 'responsive-menu'),
|
1192 |
+
'unit' => 'px',
|
1193 |
+
'pro' => true
|
1194 |
+
]
|
1195 |
+
]
|
1196 |
+
],
|
1197 |
+
'Import/Export' => [
|
1198 |
+
__('Import/Export', 'responsive-menu') => [
|
1199 |
+
[
|
1200 |
+
'option' => 'import',
|
1201 |
+
'title' => __('Import', 'responsive-menu'),
|
1202 |
+
'label' => __('', 'responsive-menu'),
|
1203 |
+
'type' => 'import'
|
1204 |
+
],
|
1205 |
+
[
|
1206 |
+
'option' => 'export',
|
1207 |
+
'title' => __('Export', 'responsive-menu'),
|
1208 |
+
'label' => __('', 'responsive-menu'),
|
1209 |
+
'type' => 'export'
|
1210 |
+
],
|
1211 |
+
[
|
1212 |
+
'option' => 'reset',
|
1213 |
+
'title' => __('Reset', 'responsive-menu'),
|
1214 |
+
'label' => __('', 'responsive-menu'),
|
1215 |
+
'type' => 'reset'
|
1216 |
+
]
|
1217 |
+
]
|
1218 |
+
]
|
1219 |
+
];
|
src/config/default_options.php
ADDED
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$default_options = [
|
4 |
+
|
5 |
+
'breakpoint' => 800,
|
6 |
+
'menu_to_hide' => '',
|
7 |
+
'menu_depth' => 5,
|
8 |
+
'menu_to_use' => '',
|
9 |
+
'theme_location_menu' => '',
|
10 |
+
|
11 |
+
// Button Settings
|
12 |
+
'button_title' => null,
|
13 |
+
'button_image' => null,
|
14 |
+
'button_image_when_clicked' => null,
|
15 |
+
'button_font' => null,
|
16 |
+
'button_font_icon' => null,
|
17 |
+
'button_font_icon_when_clicked' => null,
|
18 |
+
'button_click_trigger' => '#responsive-menu-button',
|
19 |
+
'button_title_position' => 'left',
|
20 |
+
'button_title_line_height' => '13',
|
21 |
+
'button_background_colour' => '#000',
|
22 |
+
'button_background_colour_hover' => '#000',
|
23 |
+
'button_click_animation' => 'boring',
|
24 |
+
'button_line_colour' => '#fff',
|
25 |
+
'button_text_colour' => '#fff',
|
26 |
+
'button_transparent_background' => 'off',
|
27 |
+
'button_width' => 55,
|
28 |
+
'button_height' => 55,
|
29 |
+
'button_line_margin' => 5,
|
30 |
+
'button_line_height' => 3,
|
31 |
+
'button_line_width' => 25,
|
32 |
+
'button_top' => 15,
|
33 |
+
'button_distance_from_side' => 5,
|
34 |
+
'button_left_or_right' => 'right',
|
35 |
+
'button_position_type' => 'fixed',
|
36 |
+
'button_push_with_animation' => 'off',
|
37 |
+
'button_font_size' => 14,
|
38 |
+
|
39 |
+
// Animation Settings
|
40 |
+
'animation_type' => 'slide',
|
41 |
+
'page_wrapper' => null,
|
42 |
+
'animation_speed' => 0.5,
|
43 |
+
'transition_speed' => 0.5,
|
44 |
+
|
45 |
+
// Menu Settings
|
46 |
+
'active_arrow_shape' => '▲',
|
47 |
+
'inactive_arrow_shape' => '▼',
|
48 |
+
'active_arrow_image' => '',
|
49 |
+
'inactive_arrow_image' => '',
|
50 |
+
'active_arrow_font_icon' => '',
|
51 |
+
'inactive_arrow_font_icon' => '',
|
52 |
+
'arrow_position' => 'right',
|
53 |
+
'submenu_arrow_width' => '40',
|
54 |
+
'submenu_arrow_height' => '40',
|
55 |
+
'accordion_animation' => 'off',
|
56 |
+
'auto_expand_all_submenus' => 'off',
|
57 |
+
'auto_expand_current_submenus' => 'off',
|
58 |
+
|
59 |
+
'menu_background_colour' => '#212121',
|
60 |
+
'menu_item_background_colour' => '#212121',
|
61 |
+
'menu_item_background_hover_colour' => '#3f3f3f',
|
62 |
+
'menu_item_border_colour' => '#212121',
|
63 |
+
'menu_item_border_colour_hover' => '#212121',
|
64 |
+
'menu_title_background_colour' => '#212121',
|
65 |
+
'menu_title_background_hover_colour' => '#212121',
|
66 |
+
'menu_current_item_background_colour' => '#212121',
|
67 |
+
'menu_current_item_background_hover_colour' => '#3f3f3f',
|
68 |
+
'menu_current_item_border_colour' => '#212121',
|
69 |
+
'menu_current_item_border_hover_colour' => '#3f3f3f',
|
70 |
+
'menu_title_colour' => '#fff',
|
71 |
+
'menu_title_hover_colour' => '#fff',
|
72 |
+
'menu_link_colour' => '#fff',
|
73 |
+
'menu_link_hover_colour' => '#fff',
|
74 |
+
'menu_current_link_colour' => '#fff',
|
75 |
+
'menu_current_link_hover_colour' => '#fff',
|
76 |
+
'menu_sub_arrow_border_colour' => '#212121',
|
77 |
+
'menu_sub_arrow_border_hover_colour' => '#fff',
|
78 |
+
'menu_sub_arrow_border_colour_active' => '#212121',
|
79 |
+
'menu_sub_arrow_border_hover_colour_active' => '#fff',
|
80 |
+
'menu_sub_arrow_background_colour' => '#212121',
|
81 |
+
'menu_sub_arrow_background_hover_colour' => '#3f3f3f',
|
82 |
+
'menu_sub_arrow_background_colour_active' => '#212121',
|
83 |
+
'menu_sub_arrow_background_hover_colour_active' => '#3f3f3f',
|
84 |
+
'menu_sub_arrow_shape_colour' => '#fff',
|
85 |
+
'menu_sub_arrow_shape_hover_colour' => '#fff',
|
86 |
+
'menu_sub_arrow_shape_colour_active' => '#fff',
|
87 |
+
'menu_sub_arrow_shape_hover_colour_active' => '#fff',
|
88 |
+
'menu_font' => null,
|
89 |
+
'menu_font_size' => 13,
|
90 |
+
'menu_title_font_size' => 13,
|
91 |
+
'menu_text_alignment' => 'left',
|
92 |
+
'menu_links_height' => 40,
|
93 |
+
'menu_minimum_width' => null,
|
94 |
+
'menu_maximum_width' => null,
|
95 |
+
'menu_auto_height' => 'off',
|
96 |
+
'menu_additional_content' => null,
|
97 |
+
'menu_additional_content_colour' => '#fff',
|
98 |
+
'menu_title' => null,
|
99 |
+
'menu_title_image' => null,
|
100 |
+
'menu_title_font_icon' => null,
|
101 |
+
'menu_appear_from' => 'left',
|
102 |
+
'menu_title_link' => null,
|
103 |
+
'menu_title_link_location' => '_self',
|
104 |
+
'menu_width' => 75,
|
105 |
+
'menu_close_on_link_click' => 'off',
|
106 |
+
'menu_close_on_body_click' => 'off',
|
107 |
+
'menu_item_click_to_trigger_submenu' => 'off',
|
108 |
+
'menu_disable_scrolling' => 'off',
|
109 |
+
'menu_overlay' => 'off',
|
110 |
+
'menu_overlay_colour' => 'rgba(0,0,0,0.7)',
|
111 |
+
'menu_font_icons' => '',
|
112 |
+
'menu_search_box_text' => 'Search',
|
113 |
+
'menu_search_box_text_colour' => '#333',
|
114 |
+
'menu_search_box_border_colour' => '#dadada',
|
115 |
+
'menu_search_box_background_colour' => '#fff',
|
116 |
+
'menu_search_box_placholder_colour' => '#C7C7CD',
|
117 |
+
'menu_word_wrap' => 'off',
|
118 |
+
|
119 |
+
'minify_scripts' => 'off',
|
120 |
+
'scripts_in_footer' => 'off',
|
121 |
+
'external_files' => 'off',
|
122 |
+
|
123 |
+
'shortcode' => 'off',
|
124 |
+
'mobile_only' => 'off',
|
125 |
+
'custom_walker' => null,
|
126 |
+
'custom_css' => null,
|
127 |
+
|
128 |
+
'use_single_menu' => 'off',
|
129 |
+
|
130 |
+
'single_menu_height' => '80',
|
131 |
+
'single_menu_font' => null,
|
132 |
+
'single_menu_font_size' => '14',
|
133 |
+
|
134 |
+
'single_menu_submenu_height' => '40',
|
135 |
+
'single_menu_submenu_font' => null,
|
136 |
+
'single_menu_submenu_font_size' => '12',
|
137 |
+
|
138 |
+
'single_menu_item_link_colour' => '#ffffff',
|
139 |
+
'single_menu_item_link_colour_hover' => '#ffffff',
|
140 |
+
'single_menu_item_background_colour' => '#ffffff',
|
141 |
+
'single_menu_item_background_colour_hover' => '#ffffff',
|
142 |
+
|
143 |
+
'single_menu_item_submenu_link_colour' => '#ffffff',
|
144 |
+
'single_menu_item_submenu_link_colour_hover' => '#ffffff',
|
145 |
+
'single_menu_item_submenu_background_colour' => '#ffffff',
|
146 |
+
'single_menu_item_submenu_background_colour_hover' => '#ffffff',
|
147 |
+
|
148 |
+
'use_header_bar' => 'off',
|
149 |
+
'header_bar_breakpoint' => '800',
|
150 |
+
'header_bar_logo' => null,
|
151 |
+
'header_bar_logo_link' => null,
|
152 |
+
'header_bar_title' => null,
|
153 |
+
'header_bar_html_content' => null,
|
154 |
+
'header_bar_height' => '80',
|
155 |
+
'header_bar_font_size' => '14',
|
156 |
+
'header_bar_font' => null,
|
157 |
+
'header_bar_background_color' => '#ffffff',
|
158 |
+
'header_bar_text_color' => '#ffffff',
|
159 |
+
'header_bar_position_type' => 'fixed',
|
160 |
+
|
161 |
+
'items_order' => '{"title": "on","menu":"on","search":"on","additional content":"on"}',
|
162 |
+
'header_bar_items_order' => '{"logo": "on","title":"on","search":"on","html content":"on","button":"on"}',
|
163 |
+
|
164 |
+
];
|
src/config/internationalise.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
add_action('plugins_loaded', function() {
|
4 |
+
load_plugin_textdomain('responsive-menu', false, basename(dirname(dirname(dirname(__FILE__)))) . '/translations/');
|
5 |
+
});
|
6 |
+
|
7 |
+
if(is_admin()):
|
8 |
+
|
9 |
+
/*
|
10 |
+
Polylang Integration Section */
|
11 |
+
add_action('plugins_loaded', function() use($container) {
|
12 |
+
if(function_exists('pll_register_string')):
|
13 |
+
$service = $container['option_service'];
|
14 |
+
$options = $service->all();
|
15 |
+
|
16 |
+
$menu_to_use = isset($options['menu_to_use']) ? $options['menu_to_use']->getValue() : '';
|
17 |
+
$button_title = isset($options['button_title']) ? $options['button_title']->getValue() : '';
|
18 |
+
$menu_title = isset($options['menu_title']) ? $options['menu_title']->getValue() : '';
|
19 |
+
$menu_title_link = isset($options['menu_title_link']) ? $options['menu_title_link']->getValue() : '';
|
20 |
+
$menu_additional_content = isset($options['menu_additional_content']) ? $options['menu_additional_content']->getValue() : '';
|
21 |
+
|
22 |
+
pll_register_string('menu_to_use', $menu_to_use, 'Responsive Menu');
|
23 |
+
pll_register_string('button_title', $button_title, 'Responsive Menu');
|
24 |
+
pll_register_string('menu_title', $menu_title, 'Responsive Menu');
|
25 |
+
pll_register_string('menu_title_link', $menu_title_link, 'Responsive Menu');
|
26 |
+
pll_register_string('menu_additional_content', $menu_additional_content, 'Responsive Menu');
|
27 |
+
endif;
|
28 |
+
});
|
29 |
+
endif;
|
src/config/option_helpers.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$option_helpers = [
|
4 |
+
'menu_font_icons' => [
|
5 |
+
'filter' => 'ResponsiveMenu\Filters\JsonFilter'
|
6 |
+
],
|
7 |
+
'menu_additional_content' => [
|
8 |
+
'filter' => 'ResponsiveMenu\Filters\HtmlFilter'
|
9 |
+
],
|
10 |
+
'items_order' => [
|
11 |
+
'filter' => 'ResponsiveMenu\Filters\JsonFilter'
|
12 |
+
],
|
13 |
+
'header_bar_items_order' => [
|
14 |
+
'filter' => 'ResponsiveMenu\Filters\JsonFilter'
|
15 |
+
],
|
16 |
+
'header_bar_html_content' => [
|
17 |
+
'filter' => 'ResponsiveMenu\Filters\HtmlFilter'
|
18 |
+
]
|
19 |
+
];
|
src/config/routing.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if(is_admin()):
|
4 |
+
add_action('admin_menu', function() use($container) {
|
5 |
+
if(isset($_POST['responsive_menu_submit'])):
|
6 |
+
$method = 'update';
|
7 |
+
elseif(isset($_POST['responsive_menu_reset'])):
|
8 |
+
$method = 'reset';
|
9 |
+
elseif(isset($_POST['responsive_menu_export'])):
|
10 |
+
$controller = $container['admin_controller'];
|
11 |
+
$controller->export();
|
12 |
+
elseif(isset($_POST['responsive_menu_import'])):
|
13 |
+
$method = 'import';
|
14 |
+
else:
|
15 |
+
$method = 'index';
|
16 |
+
endif;
|
17 |
+
|
18 |
+
add_menu_page(
|
19 |
+
'Responsive Menu',
|
20 |
+
'Responsive Menu',
|
21 |
+
'manage_options',
|
22 |
+
'responsive-menu',
|
23 |
+
function() use ($method, $container) {
|
24 |
+
$controller = $container['admin_controller'];
|
25 |
+
switch ($method) :
|
26 |
+
case 'update':
|
27 |
+
$controller->$method($container['default_options'], $_POST['menu']);
|
28 |
+
break;
|
29 |
+
case 'reset':
|
30 |
+
$controller->$method($container['default_options']);
|
31 |
+
break;
|
32 |
+
case 'import':
|
33 |
+
$file = $_FILES['responsive_menu_import_file'];
|
34 |
+
$file_options = isset($file['tmp_name']) ? (array) json_decode(file_get_contents($file['tmp_name'])) : null;
|
35 |
+
$controller->$method($container['default_options'], $file_options);
|
36 |
+
break;
|
37 |
+
default:
|
38 |
+
$controller->$method();
|
39 |
+
break;
|
40 |
+
endswitch;
|
41 |
+
},
|
42 |
+
'dashicons-menu');
|
43 |
+
});
|
44 |
+
else:
|
45 |
+
if(isset($_GET['responsive-menu-preview']) && isset($_POST['menu'])):
|
46 |
+
add_action('template_redirect', function() use($container) {
|
47 |
+
$container['front_controller']->preview();
|
48 |
+
});
|
49 |
+
else:
|
50 |
+
add_action('template_redirect', function() use($container) {
|
51 |
+
$container['front_controller']->index();
|
52 |
+
});
|
53 |
+
endif;
|
54 |
+
endif;
|
src/config/services.php
ADDED
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$container = new ResponsiveMenu\Routing\Container();
|
4 |
+
|
5 |
+
$container['current_version'] = function($c) {
|
6 |
+
return '3.0.10';
|
7 |
+
};
|
8 |
+
|
9 |
+
$container['option_helpers'] = function($c) {
|
10 |
+
include dirname(__FILE__) . '/option_helpers.php';
|
11 |
+
return $option_helpers;
|
12 |
+
};
|
13 |
+
|
14 |
+
$container['default_options'] = function($c) {
|
15 |
+
include dirname(__FILE__) . '/default_options.php';
|
16 |
+
return $default_options;
|
17 |
+
};
|
18 |
+
|
19 |
+
$container['site_id'] = get_current_blog_id();
|
20 |
+
|
21 |
+
$container['database'] = function($c) {
|
22 |
+
global $wpdb;
|
23 |
+
return new ResponsiveMenu\Database\WpDatabase($wpdb);
|
24 |
+
};
|
25 |
+
|
26 |
+
$container['translator'] = function($c) {
|
27 |
+
return new ResponsiveMenu\Translation\Translator;
|
28 |
+
};
|
29 |
+
|
30 |
+
$container['minifier'] = function($c) {
|
31 |
+
return new ResponsiveMenu\Formatters\Minify;
|
32 |
+
};
|
33 |
+
|
34 |
+
$container['js_mapper'] = function($c) {
|
35 |
+
return new ResponsiveMenu\Mappers\JsMapper;
|
36 |
+
};
|
37 |
+
|
38 |
+
$container['js_factory'] = function($c) {
|
39 |
+
return new ResponsiveMenu\Factories\JsFactory(
|
40 |
+
$c['js_mapper'],
|
41 |
+
$c['minifier']
|
42 |
+
);
|
43 |
+
};
|
44 |
+
|
45 |
+
$container['scss_compiler'] = function($c) {
|
46 |
+
return new scssc_free;
|
47 |
+
};
|
48 |
+
|
49 |
+
$container['css_base_mapper'] = function($c) {
|
50 |
+
return new ResponsiveMenu\Mappers\ScssBaseMapper($c['scss_compiler']);
|
51 |
+
};
|
52 |
+
|
53 |
+
$container['css_button_mapper'] = function($c) {
|
54 |
+
return new ResponsiveMenu\Mappers\ScssButtonMapper($c['scss_compiler']);
|
55 |
+
};
|
56 |
+
|
57 |
+
$container['css_menu_mapper'] = function($c) {
|
58 |
+
return new ResponsiveMenu\Mappers\ScssMenuMapper($c['scss_compiler']);
|
59 |
+
};
|
60 |
+
|
61 |
+
$container['css_factory'] = function($c) {
|
62 |
+
return new ResponsiveMenu\Factories\CssFactory(
|
63 |
+
$c['minifier'],
|
64 |
+
$c['css_base_mapper'],
|
65 |
+
$c['css_button_mapper'],
|
66 |
+
$c['css_menu_mapper']
|
67 |
+
);
|
68 |
+
};
|
69 |
+
|
70 |
+
$container['scripts_builder'] = function($c) {
|
71 |
+
return new ResponsiveMenu\Filesystem\ScriptsBuilder(
|
72 |
+
$c['css_factory'],
|
73 |
+
$c['js_factory'],
|
74 |
+
new ResponsiveMenu\Filesystem\FileCreator,
|
75 |
+
new ResponsiveMenu\Filesystem\FolderCreator,
|
76 |
+
$c['site_id']
|
77 |
+
);
|
78 |
+
};
|
79 |
+
|
80 |
+
$container['option_factory'] = function($c) {
|
81 |
+
return new ResponsiveMenu\Factories\OptionFactory(
|
82 |
+
$c['default_options'],
|
83 |
+
$c['option_helpers']
|
84 |
+
);
|
85 |
+
};
|
86 |
+
|
87 |
+
$container['option_repository'] = function($c) {
|
88 |
+
return new ResponsiveMenu\Repositories\OptionRepository(
|
89 |
+
$c['database'],
|
90 |
+
$c['option_factory'],
|
91 |
+
$c['default_options']
|
92 |
+
);
|
93 |
+
};
|
94 |
+
|
95 |
+
$container['option_service'] = function($c) {
|
96 |
+
return new ResponsiveMenu\Services\OptionService(
|
97 |
+
$c['option_repository'],
|
98 |
+
$c['option_factory'],
|
99 |
+
$c['translator'],
|
100 |
+
$c['scripts_builder']
|
101 |
+
);
|
102 |
+
};
|
103 |
+
|
104 |
+
$container['old_version'] = function($c) {
|
105 |
+
return get_option('RMVer');
|
106 |
+
};
|
107 |
+
|
108 |
+
$container['old_options'] = function($c) {
|
109 |
+
return get_option('RMOptions');
|
110 |
+
};
|
111 |
+
|
112 |
+
$container['migration'] = function($c) {
|
113 |
+
return new ResponsiveMenu\Database\Migration(
|
114 |
+
$c['database'],
|
115 |
+
$c['option_service'],
|
116 |
+
$c['default_options'],
|
117 |
+
$c['current_version'],
|
118 |
+
$c['old_version'],
|
119 |
+
$c['old_options']
|
120 |
+
);
|
121 |
+
};
|
122 |
+
|
123 |
+
$container['admin_view'] = function($c) {
|
124 |
+
return new ResponsiveMenu\View\AdminView;
|
125 |
+
};
|
126 |
+
|
127 |
+
$container['front_view'] = function($c) {
|
128 |
+
return new ResponsiveMenu\View\FrontView(
|
129 |
+
$c['js_factory'],
|
130 |
+
$c['css_factory']
|
131 |
+
);
|
132 |
+
};
|
133 |
+
|
134 |
+
$container['admin_controller'] = function($c) {
|
135 |
+
return new ResponsiveMenu\Controllers\Admin(
|
136 |
+
$c['option_service'],
|
137 |
+
$c['admin_view']
|
138 |
+
);
|
139 |
+
};
|
140 |
+
|
141 |
+
$container['component_factory'] = function($c) {
|
142 |
+
return new ResponsiveMenu\ViewModels\Components\ComponentFactory;
|
143 |
+
};
|
144 |
+
|
145 |
+
$container['button_component'] = function($c) {
|
146 |
+
return new ResponsiveMenu\ViewModels\Components\Button\Button($c['translator']);
|
147 |
+
};
|
148 |
+
|
149 |
+
$container['menu_view'] = function($c) {
|
150 |
+
return new ResponsiveMenu\ViewModels\Menu($c['component_factory']);
|
151 |
+
};
|
152 |
+
|
153 |
+
$container['button_view'] = function($c) {
|
154 |
+
return new ResponsiveMenu\ViewModels\Button($c['button_component']);
|
155 |
+
};
|
156 |
+
|
157 |
+
$container['front_controller'] = function($c) {
|
158 |
+
return new ResponsiveMenu\Controllers\Front(
|
159 |
+
$c['option_service'],
|
160 |
+
$c['front_view'],
|
161 |
+
$c['menu_view'],
|
162 |
+
$c['button_view']
|
163 |
+
);
|
164 |
+
};
|
src/public/css/admin/main.css
ADDED
@@ -0,0 +1,745 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tab_container {
|
2 |
+
display: none;
|
3 |
+
}
|
4 |
+
|
5 |
+
.tabs_container {
|
6 |
+
margin: 25px 0 15px 0;
|
7 |
+
}
|
8 |
+
|
9 |
+
.responsive-menu-postbox-container {
|
10 |
+
direction: ltr;
|
11 |
+
}
|
12 |
+
|
13 |
+
.wrap .notice,
|
14 |
+
.wrap div.error,
|
15 |
+
.wrap div.updated {
|
16 |
+
margin: 0;
|
17 |
+
}
|
18 |
+
|
19 |
+
#submitdiv {
|
20 |
+
width: 100%;
|
21 |
+
min-width: 100%;
|
22 |
+
}
|
23 |
+
|
24 |
+
#menu-sortable {
|
25 |
+
position: relative;
|
26 |
+
}
|
27 |
+
|
28 |
+
#menu-sortable,
|
29 |
+
#items_order_container td:last-child {
|
30 |
+
width:400px;
|
31 |
+
}
|
32 |
+
|
33 |
+
#postbox_order .fa {
|
34 |
+
position: absolute;
|
35 |
+
right: 3%;
|
36 |
+
top: 13px;
|
37 |
+
}
|
38 |
+
|
39 |
+
#postbox_ordering .fa {
|
40 |
+
position: absolute;
|
41 |
+
left: 47%;
|
42 |
+
bottom: 11px;
|
43 |
+
}
|
44 |
+
|
45 |
+
#postbox_ordering li.draggable {
|
46 |
+
height: 41px;
|
47 |
+
vertical-align: top;
|
48 |
+
}
|
49 |
+
|
50 |
+
.menu-order-option-switch,
|
51 |
+
.order-option-switch {
|
52 |
+
background: #DE4B42;
|
53 |
+
color: white;
|
54 |
+
position: absolute;
|
55 |
+
left: 0;
|
56 |
+
top: 0;
|
57 |
+
bottom: 0;
|
58 |
+
line-height: 40px;
|
59 |
+
padding: 0 5px;
|
60 |
+
width: 30px;
|
61 |
+
text-align: center;
|
62 |
+
cursor: pointer;
|
63 |
+
}
|
64 |
+
|
65 |
+
.menu-order-option-switch.menu-order-option-switch-on,
|
66 |
+
.order-option-switch.order-option-switch-on {
|
67 |
+
background: green;
|
68 |
+
}
|
69 |
+
|
70 |
+
.menu-order-option-switch:after,
|
71 |
+
.order-option-switch:after {
|
72 |
+
content: "OFF";
|
73 |
+
}
|
74 |
+
|
75 |
+
.menu-order-option-switch.menu-order-option-switch-on:after,
|
76 |
+
.order-option-switch.order-option-switch-on:after {
|
77 |
+
content: "ON";
|
78 |
+
}
|
79 |
+
|
80 |
+
li.draggable {
|
81 |
+
position: relative;
|
82 |
+
}
|
83 |
+
|
84 |
+
.postbox > h4 {
|
85 |
+
background: #ffffff none repeat scroll 0 0;
|
86 |
+
border-bottom: 1px solid #eee;
|
87 |
+
box-sizing: border-box;
|
88 |
+
display: block;
|
89 |
+
font-size: 14px;
|
90 |
+
line-height: 1.4;
|
91 |
+
padding: 8px 12px;
|
92 |
+
width: 100%;
|
93 |
+
margin: 0;
|
94 |
+
}
|
95 |
+
|
96 |
+
.add-font-icon {
|
97 |
+
display: inline-block;
|
98 |
+
background: #298CBA;
|
99 |
+
color: white;
|
100 |
+
padding: 10px 25px;
|
101 |
+
border-radius: 2px;
|
102 |
+
cursor: pointer;
|
103 |
+
margin-top: 15px;
|
104 |
+
font-weight: bold;
|
105 |
+
}
|
106 |
+
|
107 |
+
.postbox .inside .select,
|
108 |
+
.postbox .inside .image_button,
|
109 |
+
.postbox .inside .image,
|
110 |
+
.postbox .inside .text {
|
111 |
+
padding: 5px 15px;
|
112 |
+
height: 30px;
|
113 |
+
margin-right: 10px;
|
114 |
+
}
|
115 |
+
|
116 |
+
.postbox .inside .textarea {
|
117 |
+
height: 100px;
|
118 |
+
padding: 15px;
|
119 |
+
width: 100%;
|
120 |
+
}
|
121 |
+
|
122 |
+
.font-icon-container .font-icon-row:first-child {
|
123 |
+
font-weight: bold;
|
124 |
+
}
|
125 |
+
|
126 |
+
.postbox .inside {
|
127 |
+
padding: 0;
|
128 |
+
margin: 0 !important;
|
129 |
+
}
|
130 |
+
|
131 |
+
.postbox .inside table {
|
132 |
+
width: 100%;
|
133 |
+
border-spacing: 0;
|
134 |
+
}
|
135 |
+
|
136 |
+
.postbox .inside table .description {
|
137 |
+
color: #899194;
|
138 |
+
line-height: 16px;
|
139 |
+
font-size: 12px;
|
140 |
+
}
|
141 |
+
|
142 |
+
.postbox .inside table tr td {
|
143 |
+
border-bottom: 1px solid #f5f5f5;
|
144 |
+
vertical-align: middle;
|
145 |
+
}
|
146 |
+
|
147 |
+
.postbox .inside table tr td:first-child {
|
148 |
+
background: #F9F9F9;
|
149 |
+
font-weight: bold;
|
150 |
+
border-right: 1px solid #e1e1e1;
|
151 |
+
color: #333;
|
152 |
+
width: 250px;
|
153 |
+
}
|
154 |
+
|
155 |
+
.postbox .inside table tr td:last-child:hover {
|
156 |
+
background: #FCFCFC;
|
157 |
+
}
|
158 |
+
|
159 |
+
.postbox .inside table tr.pro_option td:last-child:hover {
|
160 |
+
background: #FFE9E8;
|
161 |
+
}
|
162 |
+
|
163 |
+
.postbox .inside table tr.semi_pro_option td:last-child:hover {
|
164 |
+
background: #EDEAEA;
|
165 |
+
}
|
166 |
+
|
167 |
+
.postbox .inside table tr td:last-child {
|
168 |
+
text-align: left;
|
169 |
+
position: relative;
|
170 |
+
}
|
171 |
+
|
172 |
+
input[type="text"].image,
|
173 |
+
.select-style,
|
174 |
+
.inside .minicolors-theme-default.minicolors,
|
175 |
+
.postbox .inside .textarea,
|
176 |
+
.postbox .inside input.text {
|
177 |
+
width: 74%;
|
178 |
+
}
|
179 |
+
|
180 |
+
#normal-sortables .button.submit,
|
181 |
+
.postbox .inside .image_button {
|
182 |
+
background: #298CBA;
|
183 |
+
color: white;
|
184 |
+
border-color: #298CBA;
|
185 |
+
}
|
186 |
+
|
187 |
+
#normal-sortables .button.submit {
|
188 |
+
padding: 0 35px;
|
189 |
+
height: 50px;
|
190 |
+
line-height: 50px;
|
191 |
+
font-weight: bold;
|
192 |
+
font-size: 11px;
|
193 |
+
}
|
194 |
+
|
195 |
+
#normal-sortables .button.submit:hover {
|
196 |
+
background: #40A1CE;
|
197 |
+
}
|
198 |
+
|
199 |
+
.postbox .inside .image_button .fa {
|
200 |
+
vertical-align: text-top;
|
201 |
+
}
|
202 |
+
|
203 |
+
#header_bar_items_order_container td {
|
204 |
+
width: 100%;
|
205 |
+
display: block;
|
206 |
+
padding: 20px;
|
207 |
+
border: 0;
|
208 |
+
box-sizing: border-box;
|
209 |
+
}
|
210 |
+
|
211 |
+
.postbox .inside tr.semi_pro_option td:last-child:before,
|
212 |
+
.postbox .inside tr.pro_option td:last-child:before {
|
213 |
+
content: "PRO";
|
214 |
+
float: right;
|
215 |
+
color: #DE4B42;
|
216 |
+
font-weight: bold;
|
217 |
+
font-size: 9px;
|
218 |
+
margin-top: 6px;
|
219 |
+
border-left: 1px solid #DE4B42;
|
220 |
+
padding-left: 8px;
|
221 |
+
}
|
222 |
+
|
223 |
+
.postbox .inside tr.semi_pro_option td:last-child:before {
|
224 |
+
content: "SEMI PRO";
|
225 |
+
color: #333;
|
226 |
+
border-color: #333;
|
227 |
+
}
|
228 |
+
|
229 |
+
.postbox .inside tr.pro_option td:last-child:hover:after {
|
230 |
+
width: 100%;
|
231 |
+
content: "Please upgrade to use";
|
232 |
+
top: 0;
|
233 |
+
left: 0;
|
234 |
+
right: 0;
|
235 |
+
bottom: 0;
|
236 |
+
position: absolute;
|
237 |
+
text-align: center;
|
238 |
+
color: #fff;
|
239 |
+
font-weight: bold;
|
240 |
+
font-size: 14px;
|
241 |
+
padding-top: 2%;
|
242 |
+
background: rgba(222, 75, 66, 0.6);
|
243 |
+
}
|
244 |
+
|
245 |
+
#items_order_container td:last-child,
|
246 |
+
#header_bar_items_order_container td:last-child {
|
247 |
+
text-align: center;
|
248 |
+
}
|
249 |
+
|
250 |
+
.postbox_font_icons .inside
|
251 |
+
{
|
252 |
+
padding: 0;
|
253 |
+
margin-bottom: 0;
|
254 |
+
}
|
255 |
+
|
256 |
+
.postbox .inside .wp-color-picker {
|
257 |
+
cursor: crosshair;
|
258 |
+
}
|
259 |
+
|
260 |
+
#all_options_container,
|
261 |
+
#banner_area
|
262 |
+
{
|
263 |
+
vertical-align: top;
|
264 |
+
display: inline-block;
|
265 |
+
box-sizing: border-box;
|
266 |
+
}
|
267 |
+
|
268 |
+
#all_options_container {
|
269 |
+
width: 74%;
|
270 |
+
}
|
271 |
+
|
272 |
+
#banner_area
|
273 |
+
{
|
274 |
+
width: 24%;
|
275 |
+
margin-top: 1px;
|
276 |
+
margin-left: 2%;
|
277 |
+
}
|
278 |
+
|
279 |
+
#upgrade_banner {
|
280 |
+
padding: 25px 5%;
|
281 |
+
background: #DE4B42;
|
282 |
+
color: #fff;
|
283 |
+
border: 1px solid #D33C34;
|
284 |
+
border-radius: 2px;
|
285 |
+
text-align: center;
|
286 |
+
}
|
287 |
+
|
288 |
+
#upgrade_banner i {
|
289 |
+
margin-right: 5px;
|
290 |
+
}
|
291 |
+
|
292 |
+
#docs_banner {
|
293 |
+
background: #FAB719;
|
294 |
+
padding: 35px;
|
295 |
+
color: #333;
|
296 |
+
margin-top: 15px;
|
297 |
+
text-align: center;
|
298 |
+
}
|
299 |
+
|
300 |
+
#upgrade_banner,
|
301 |
+
#docs_banner {
|
302 |
+
font-size: 18px;
|
303 |
+
font-weight: bold;
|
304 |
+
line-height: 24px;
|
305 |
+
}
|
306 |
+
|
307 |
+
#upgrade_banner li {
|
308 |
+
list-style: none;
|
309 |
+
font-weight: bold;
|
310 |
+
font-size: 11px;
|
311 |
+
}
|
312 |
+
|
313 |
+
#docs_banner .button,
|
314 |
+
#upgrade_banner .button {
|
315 |
+
background: white;
|
316 |
+
padding: 0 25px;
|
317 |
+
height: 50px;
|
318 |
+
line-height: 50px;
|
319 |
+
font-weight: bold;
|
320 |
+
font-size: 13px;
|
321 |
+
color: #333;
|
322 |
+
display: block;
|
323 |
+
margin: auto;
|
324 |
+
width: auto;
|
325 |
+
text-align: center;
|
326 |
+
}
|
327 |
+
|
328 |
+
#docs_banner .button {
|
329 |
+
margin-top: 15px;
|
330 |
+
}
|
331 |
+
|
332 |
+
#options_list_container .tab_container:first-child {
|
333 |
+
display: block;
|
334 |
+
}
|
335 |
+
|
336 |
+
.tab
|
337 |
+
{
|
338 |
+
display: inline-block;
|
339 |
+
padding: 5px;
|
340 |
+
text-align: center;
|
341 |
+
border: 1px solid #CCC;
|
342 |
+
border-radius: 2px;
|
343 |
+
cursor: pointer;
|
344 |
+
background: white;
|
345 |
+
margin: 0 5px 0 0 !important;
|
346 |
+
}
|
347 |
+
|
348 |
+
.tab.active_tab {
|
349 |
+
background: #00A0D2;
|
350 |
+
color: white;
|
351 |
+
border-color: #298CBA;
|
352 |
+
}
|
353 |
+
|
354 |
+
.option_holder
|
355 |
+
{
|
356 |
+
display: inline-block;
|
357 |
+
width: 30%;
|
358 |
+
vertical-align: middle;
|
359 |
+
position: relative;
|
360 |
+
text-align: center;
|
361 |
+
margin-right: 2%;
|
362 |
+
padding: 5px 2% 25px 2%;
|
363 |
+
margin-top: 15px;
|
364 |
+
border: 1px dashed #DADADA;
|
365 |
+
border-radius: 5px;
|
366 |
+
transition: 0.4s all;
|
367 |
+
box-sizing: border-box;
|
368 |
+
}
|
369 |
+
|
370 |
+
.option_holder:hover
|
371 |
+
{
|
372 |
+
background: #F7F2F2;
|
373 |
+
}
|
374 |
+
|
375 |
+
.option_holder h4
|
376 |
+
{
|
377 |
+
margin-bottom: 0;
|
378 |
+
}
|
379 |
+
|
380 |
+
.option_holder h5
|
381 |
+
{
|
382 |
+
margin: 5px 0;
|
383 |
+
font-weight: normal;
|
384 |
+
}
|
385 |
+
|
386 |
+
.option_holder.pro_option
|
387 |
+
{
|
388 |
+
border-color: #ED655E;
|
389 |
+
}
|
390 |
+
|
391 |
+
.option_holder.semi_pro_option {
|
392 |
+
border-color: #DADADA;
|
393 |
+
}
|
394 |
+
|
395 |
+
.options_container
|
396 |
+
{
|
397 |
+
background: white;
|
398 |
+
border: 1px solid #CCC;
|
399 |
+
border-radius: 0 2px 2px 2px;
|
400 |
+
padding: 0 15px 15px 15px;
|
401 |
+
text-align: center;
|
402 |
+
}
|
403 |
+
|
404 |
+
.options_container input,
|
405 |
+
.options_container textarea,
|
406 |
+
.options_container select
|
407 |
+
{
|
408 |
+
width: 90%;
|
409 |
+
border: 1px solid #CCC;
|
410 |
+
border-radius: 2px;
|
411 |
+
padding: 5px;
|
412 |
+
background: white;
|
413 |
+
}
|
414 |
+
|
415 |
+
/* On-Off Buttons */
|
416 |
+
|
417 |
+
.onoffswitch {
|
418 |
+
position: relative; width: 74px;
|
419 |
+
-webkit-user-select:none;
|
420 |
+
-moz-user-select:none;
|
421 |
+
-ms-user-select: none;
|
422 |
+
}
|
423 |
+
|
424 |
+
.onoffswitch-checkbox {
|
425 |
+
display: none;
|
426 |
+
}
|
427 |
+
|
428 |
+
.onoffswitch-label {
|
429 |
+
display: block;
|
430 |
+
overflow: hidden;
|
431 |
+
cursor: pointer;
|
432 |
+
border: 2px solid transparent;
|
433 |
+
text-align: left;
|
434 |
+
}
|
435 |
+
|
436 |
+
.onoffswitch-inner {
|
437 |
+
display: block;
|
438 |
+
width: 200%;
|
439 |
+
margin-left: -100%;
|
440 |
+
transition: margin 0.3s ease-in 0s;
|
441 |
+
}
|
442 |
+
|
443 |
+
.onoffswitch-inner:before,
|
444 |
+
.onoffswitch-inner:after {
|
445 |
+
display: block;
|
446 |
+
float: left;
|
447 |
+
width: 50%;
|
448 |
+
height: 23px;
|
449 |
+
padding: 0;
|
450 |
+
line-height: 23px;
|
451 |
+
font-size: 14px;
|
452 |
+
color: white;
|
453 |
+
font-family: Trebuchet, Arial, sans-serif;
|
454 |
+
font-weight: bold;
|
455 |
+
box-sizing: border-box;
|
456 |
+
}
|
457 |
+
|
458 |
+
.onoffswitch-inner:before {
|
459 |
+
content: "ON";
|
460 |
+
padding-left: 10px;
|
461 |
+
background-color: transparent;
|
462 |
+
color: green;
|
463 |
+
}
|
464 |
+
|
465 |
+
.onoffswitch-inner:after {
|
466 |
+
content: "OFF";
|
467 |
+
padding-right: 10px;
|
468 |
+
background-color: transparent;
|
469 |
+
color: #de4b42;
|
470 |
+
text-align: right;
|
471 |
+
}
|
472 |
+
|
473 |
+
.onoffswitch-switch {
|
474 |
+
display: block;
|
475 |
+
width: 13px;
|
476 |
+
margin: 5px;
|
477 |
+
background: #FFFFFF;
|
478 |
+
position: absolute;
|
479 |
+
top: 0;
|
480 |
+
bottom: 0;
|
481 |
+
right: 47px;
|
482 |
+
border: 2px solid #999999;
|
483 |
+
border-radius: 12px;
|
484 |
+
transition: all 0.3s ease-in 0s;
|
485 |
+
}
|
486 |
+
|
487 |
+
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
|
488 |
+
margin-left: 0;
|
489 |
+
}
|
490 |
+
|
491 |
+
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
492 |
+
right: 0px;
|
493 |
+
}
|
494 |
+
|
495 |
+
input[type="checkbox"]
|
496 |
+
{
|
497 |
+
display: none;
|
498 |
+
}
|
499 |
+
|
500 |
+
.key-container {
|
501 |
+
margin-bottom: 15px;
|
502 |
+
}
|
503 |
+
|
504 |
+
.key-container .key-title {
|
505 |
+
font-weight: bold;
|
506 |
+
display: inline-block;
|
507 |
+
margin-right: 10px;
|
508 |
+
}
|
509 |
+
|
510 |
+
.key-container .key {
|
511 |
+
display: inline-block;
|
512 |
+
font-size: 9px;
|
513 |
+
border: 1px solid #DADADA;
|
514 |
+
border-radius: 2px;
|
515 |
+
padding: 5px 15px 5px 5px;
|
516 |
+
background: white;
|
517 |
+
}
|
518 |
+
|
519 |
+
.key-container .key span {
|
520 |
+
border-right: 1px solid #de4b42;
|
521 |
+
display: inline-block;
|
522 |
+
padding-right: 5px;
|
523 |
+
margin-right: 10px;
|
524 |
+
color: #de4b42;
|
525 |
+
font-size: 9px;
|
526 |
+
font-weight: bold;
|
527 |
+
}
|
528 |
+
|
529 |
+
.key-container .key.key-semi-pro span {
|
530 |
+
color: #333;
|
531 |
+
border-color: #333;
|
532 |
+
}
|
533 |
+
|
534 |
+
.key-container .key.key-pro {
|
535 |
+
margin-right: 15px;
|
536 |
+
}
|
537 |
+
|
538 |
+
.key-container a {
|
539 |
+
text-decoration: none;
|
540 |
+
color: #333;
|
541 |
+
}
|
542 |
+
|
543 |
+
/* End On-Off Buttons */
|
544 |
+
|
545 |
+
/* Nice Select Button Styling */
|
546 |
+
.select-style {
|
547 |
+
border: 1px solid #ccc;
|
548 |
+
border-radius: 3px;
|
549 |
+
cursor: pointer;
|
550 |
+
overflow: hidden;
|
551 |
+
background: #fafafa url("data:image/png;base64,R0lGODlhDwAUAIABAAAAAP///yH5BAEAAAEALAAAAAAPABQAAAIXjI+py+0Po5wH2HsXzmw//lHiSJZmUAAAOw==")no-repeat 95% 50%;
|
552 |
+
}
|
553 |
+
|
554 |
+
.select-style select {
|
555 |
+
width: 105%;
|
556 |
+
border: none;
|
557 |
+
cursor: pointer;
|
558 |
+
box-shadow: none;
|
559 |
+
background: transparent;
|
560 |
+
background-image: none;
|
561 |
+
-webkit-appearance: none;
|
562 |
+
max-width: 115%;
|
563 |
+
}
|
564 |
+
|
565 |
+
.select-style select:focus {
|
566 |
+
outline: none;
|
567 |
+
}
|
568 |
+
|
569 |
+
/* End Select Button Styling */
|
570 |
+
|
571 |
+
/* Text Box Styling */
|
572 |
+
|
573 |
+
input[type="text"].text,
|
574 |
+
input[type="text"].image
|
575 |
+
{
|
576 |
+
padding: 10px 5%;
|
577 |
+
border: 1px solid #c9c9c9;
|
578 |
+
border-bottom: solid 2px #c9c9c9;
|
579 |
+
transition: border 0.3s;
|
580 |
+
}
|
581 |
+
|
582 |
+
input[type="text"].text:focus,
|
583 |
+
input[type="text"].text.focus,
|
584 |
+
input[type="text"].image:focus,
|
585 |
+
input[type="text"].image.focus,
|
586 |
+
{
|
587 |
+
border-bottom: solid 2px #969696;
|
588 |
+
}
|
589 |
+
|
590 |
+
input[type="button"].image_button
|
591 |
+
{
|
592 |
+
width: 15%;
|
593 |
+
height: 42px;
|
594 |
+
}
|
595 |
+
|
596 |
+
input[type="text"].image,
|
597 |
+
input[type="button"].image_button
|
598 |
+
{
|
599 |
+
display: inline-block;
|
600 |
+
}
|
601 |
+
|
602 |
+
/* End Text Box Styling */
|
603 |
+
#custom_css,
|
604 |
+
#menu_font_icons_container,
|
605 |
+
#custom_css_container
|
606 |
+
{
|
607 |
+
width: 90%;
|
608 |
+
}
|
609 |
+
|
610 |
+
.font-icon-container
|
611 |
+
{
|
612 |
+
width: 100%;
|
613 |
+
display: table;
|
614 |
+
}
|
615 |
+
|
616 |
+
#custom_css {
|
617 |
+
height: 300px;
|
618 |
+
}
|
619 |
+
|
620 |
+
.font-icon-row
|
621 |
+
{
|
622 |
+
display: table-row;
|
623 |
+
}
|
624 |
+
|
625 |
+
.font-icon-cell-id,
|
626 |
+
.font-icon-cell-icon
|
627 |
+
{
|
628 |
+
display: inline-block;
|
629 |
+
text-align: left;
|
630 |
+
}
|
631 |
+
|
632 |
+
.font-icon-cell-id {
|
633 |
+
width: 10%;
|
634 |
+
}
|
635 |
+
|
636 |
+
.font-icon-cell-icon {
|
637 |
+
width: 64%;
|
638 |
+
}
|
639 |
+
|
640 |
+
.font-icon-cell-id input,
|
641 |
+
.font-icon-cell-icon input
|
642 |
+
{
|
643 |
+
width: 100%;
|
644 |
+
}
|
645 |
+
|
646 |
+
.draggable {
|
647 |
+
border: 1px solid #DADADA;
|
648 |
+
border-radius: 2px;
|
649 |
+
background: #EFEFEF;
|
650 |
+
padding: 10px 0;
|
651 |
+
margin: 0;
|
652 |
+
cursor: move;
|
653 |
+
font-weight: bold;
|
654 |
+
padding-left: 35px;
|
655 |
+
box-sizing: border-box;
|
656 |
+
}
|
657 |
+
|
658 |
+
.draggable input {
|
659 |
+
display: none;
|
660 |
+
}
|
661 |
+
|
662 |
+
#header_bar_items_order_container .draggable {
|
663 |
+
display: inline-block;
|
664 |
+
width: 19%;
|
665 |
+
}
|
666 |
+
|
667 |
+
.upgrade-notes {
|
668 |
+
background: #DE4B42;
|
669 |
+
padding: 15px 2%;
|
670 |
+
width: 96%;
|
671 |
+
position: relative;
|
672 |
+
margin: 15px 0;
|
673 |
+
color: white;
|
674 |
+
}
|
675 |
+
|
676 |
+
.upgrade-notes a {
|
677 |
+
color: white;
|
678 |
+
text-decoration: underline;
|
679 |
+
}
|
680 |
+
|
681 |
+
.upgrade-notes-title {
|
682 |
+
font-size: 16px;
|
683 |
+
margin-bottom: 10px;
|
684 |
+
font-weight: bold;
|
685 |
+
}
|
686 |
+
|
687 |
+
.upgrade-notes-close {
|
688 |
+
position: absolute;
|
689 |
+
top: 0;
|
690 |
+
right: 2%;
|
691 |
+
font-size: 18px;
|
692 |
+
padding: 15px;
|
693 |
+
font-weight: bold;
|
694 |
+
cursor: pointer;
|
695 |
+
}
|
696 |
+
|
697 |
+
@media (max-width: 1200px) {
|
698 |
+
.preview,
|
699 |
+
#delete-action {
|
700 |
+
float: none;
|
701 |
+
width: 100%;
|
702 |
+
clear: both;
|
703 |
+
text-align: center;
|
704 |
+
}
|
705 |
+
}
|
706 |
+
|
707 |
+
@media (max-width: 800px) {
|
708 |
+
.tab {
|
709 |
+
margin-bottom: 10px !important;
|
710 |
+
width: 18%;
|
711 |
+
margin-right: 1% !important;
|
712 |
+
}
|
713 |
+
#banner_area,
|
714 |
+
#all_options_container {
|
715 |
+
width: 100%;
|
716 |
+
}
|
717 |
+
.tabs_container {
|
718 |
+
text-align: center;
|
719 |
+
}
|
720 |
+
.postbox .inside table tr td,
|
721 |
+
.postbox .inside table tr td:last-child,
|
722 |
+
.postbox .inside table tr td:first-child {
|
723 |
+
width: 100%;
|
724 |
+
display: block;
|
725 |
+
text-align: center;
|
726 |
+
padding: 10px 0;
|
727 |
+
}
|
728 |
+
#banner_area {
|
729 |
+
margin: 15px 0;
|
730 |
+
}
|
731 |
+
#menu-sortable,
|
732 |
+
.onoffswitch,
|
733 |
+
.select-style {
|
734 |
+
margin: auto;
|
735 |
+
}
|
736 |
+
#menu-sortable, #items_order_container td:last-child {
|
737 |
+
width: 90%;
|
738 |
+
margin: auto;
|
739 |
+
}
|
740 |
+
#normal-sortables .button.submit {
|
741 |
+
margin: auto;
|
742 |
+
display: block;
|
743 |
+
float: none;
|
744 |
+
}
|
745 |
+
}
|
src/public/js/admin/main.js
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function($) {
|
2 |
+
|
3 |
+
$('.wp-color-picker').wpColorPicker();
|
4 |
+
|
5 |
+
var custom_uploader;
|
6 |
+
|
7 |
+
$('.image_button').click(function (e) {
|
8 |
+
e.preventDefault();
|
9 |
+
window.imgFor = $(this).attr('for');
|
10 |
+
//If the uploader object has already been created, reopen the dialog
|
11 |
+
if (custom_uploader) {
|
12 |
+
custom_uploader.open();
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
//Extend the wp.media object
|
16 |
+
custom_uploader = wp.media.frames.file_frame = wp.media({
|
17 |
+
title: 'Choose Image',
|
18 |
+
button: {
|
19 |
+
text: 'Choose Image',
|
20 |
+
id: 'test'
|
21 |
+
},
|
22 |
+
multiple: false
|
23 |
+
});
|
24 |
+
|
25 |
+
//When a file is selected, grab the URL and set it as the text field's value
|
26 |
+
custom_uploader.on('select', function () {
|
27 |
+
attachment = custom_uploader.state().get('selection').first().toJSON();
|
28 |
+
$('#' + window.imgFor).val(attachment.url);
|
29 |
+
});
|
30 |
+
|
31 |
+
//Open the uploader dialog
|
32 |
+
custom_uploader.open();
|
33 |
+
});
|
34 |
+
|
35 |
+
$(document).on('click', '.tab', 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 |
+
});
|
42 |
+
|
43 |
+
if(typeof(Storage) !== "undefined") {
|
44 |
+
if(localStorage.rmupgrade) {
|
45 |
+
$('.upgrade-notes').hide();
|
46 |
+
} else {
|
47 |
+
$(document).on('click', '.upgrade-notes-close', function(e) {
|
48 |
+
e.stopPropagation();
|
49 |
+
e.preventDefault();
|
50 |
+
$('.upgrade-notes').fadeOut();
|
51 |
+
localStorage.rmupgrade = "true";
|
52 |
+
});
|
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/js/admin/postbox-edit.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function($){
|
2 |
+
$('.if-js-closed').removeClass('if-js-closed').addClass('closed');
|
3 |
+
postboxes.add_postbox_toggles('responsive-menu');
|
4 |
+
});
|
src/public/scss/hamburgers/_base.scss
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Hamburger
|
2 |
+
// ==================================================
|
3 |
+
button#responsive-menu-button {
|
4 |
+
padding: $hamburger-padding-y $hamburger-padding-x;
|
5 |
+
display: inline-block;
|
6 |
+
cursor: pointer;
|
7 |
+
|
8 |
+
transition-property: opacity, filter;
|
9 |
+
transition-duration: $hamburger-hover-transition-duration;
|
10 |
+
transition-timing-function: $hamburger-hover-transition-timing-function;
|
11 |
+
|
12 |
+
// Normalize (<button>)
|
13 |
+
font: inherit;
|
14 |
+
color: inherit;
|
15 |
+
text-transform: none;
|
16 |
+
background-color: transparent;
|
17 |
+
border: 0;
|
18 |
+
margin: 0;
|
19 |
+
overflow: visible;
|
20 |
+
|
21 |
+
&:hover {
|
22 |
+
@if $hamburger-hover-use-filter == true {
|
23 |
+
filter: $hamburger-hover-filter;
|
24 |
+
}
|
25 |
+
@else {
|
26 |
+
opacity: $hamburger-hover-opacity;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
.responsive-menu-box {
|
32 |
+
width: $hamburger-layer-width;
|
33 |
+
height: $hamburger-layer-height * 3 + $hamburger-layer-spacing * 2;
|
34 |
+
display: inline-block;
|
35 |
+
position: relative;
|
36 |
+
}
|
37 |
+
|
38 |
+
.responsive-menu-inner {
|
39 |
+
display: block;
|
40 |
+
top: 50%;
|
41 |
+
margin-top: $hamburger-layer-height / -2;
|
42 |
+
|
43 |
+
&,
|
44 |
+
&::before,
|
45 |
+
&::after {
|
46 |
+
width: $hamburger-layer-width;
|
47 |
+
height: $hamburger-layer-height;
|
48 |
+
background-color: $hamburger-layer-color;
|
49 |
+
border-radius: $hamburger-layer-border-radius;
|
50 |
+
position: absolute;
|
51 |
+
transition-property: transform;
|
52 |
+
transition-duration: 0.15s;
|
53 |
+
transition-timing-function: ease;
|
54 |
+
}
|
55 |
+
|
56 |
+
&::before,
|
57 |
+
&::after {
|
58 |
+
content: "";
|
59 |
+
display: block;
|
60 |
+
}
|
61 |
+
|
62 |
+
&::before {
|
63 |
+
top: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
|
64 |
+
}
|
65 |
+
|
66 |
+
&::after {
|
67 |
+
bottom: ($hamburger-layer-spacing + $hamburger-layer-height) * -1;
|
68 |
+
}
|
69 |
+
}
|
src/public/scss/hamburgers/hamburgers.scss
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Hamburgers
|
3 |
+
* @description Tasty CSS-animated hamburgers
|
4 |
+
* @author Jonathan Suh @jonsuh
|
5 |
+
* @site https://jonsuh.com/hamburgers
|
6 |
+
* @link https://github.com/jonsuh/hamburgers
|
7 |
+
*/
|
8 |
+
|
9 |
+
// Settings
|
10 |
+
// ==================================================
|
11 |
+
$hamburger-padding-x : 0 !default;
|
12 |
+
$hamburger-padding-y : 0 !default;
|
13 |
+
$hamburger-layer-width : 40px !default;
|
14 |
+
$hamburger-layer-height : 4px !default;
|
15 |
+
$hamburger-layer-spacing : 6px !default;
|
16 |
+
$hamburger-layer-color : #000 !default;
|
17 |
+
$hamburger-layer-border-radius : 4px !default;
|
18 |
+
$hamburger-hover-opacity : 0.7 !default;
|
19 |
+
$hamburger-hover-transition-duration : 0.15s !default;
|
20 |
+
$hamburger-hover-transition-timing-function: linear !default;
|
21 |
+
|
22 |
+
// To use CSS filters as the hover effect instead of opacity,
|
23 |
+
// set $hamburger-hover-use-filter as true and
|
24 |
+
// change the value of $hamburger-hover-filter accordingly.
|
25 |
+
$hamburger-hover-use-filter: false !default;
|
26 |
+
$hamburger-hover-filter : opacity(50%) !default;
|
27 |
+
|
28 |
+
// Types (Remove or comment out what you don’t need)
|
29 |
+
// ==================================================
|
30 |
+
$hamburger-types: (
|
31 |
+
boring,
|
32 |
+
none
|
33 |
+
) !default;
|
34 |
+
|
35 |
+
// Base Hamburger (We need this)
|
36 |
+
// ==================================================
|
37 |
+
@import "base";
|
38 |
+
|
39 |
+
// Hamburger types
|
40 |
+
// ==================================================
|
41 |
+
@import "types/boring";
|
42 |
+
|
43 |
+
// ==================================================
|
44 |
+
// Cooking up additional types:
|
45 |
+
//
|
46 |
+
// The Sass for each hamburger type should be nested
|
47 |
+
// inside an @if directive to check whether or not
|
48 |
+
// it exists in $hamburger-types so only the CSS for
|
49 |
+
// included types are generated.
|
50 |
+
//
|
51 |
+
// e.g. hamburgers/types/_new-type.scss
|
52 |
+
//
|
53 |
+
// @if index($hamburger-types, new-type) {
|
54 |
+
// .responsive-menu-new-type {
|
55 |
+
// ...
|
56 |
+
// }
|
57 |
+
// }
|
src/public/scss/hamburgers/types/_boring.scss
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@if index($hamburger-types, boring) {
|
2 |
+
/*
|
3 |
+
* Boring
|
4 |
+
*/
|
5 |
+
.responsive-menu-boring {
|
6 |
+
.responsive-menu-inner {
|
7 |
+
&,
|
8 |
+
&::before,
|
9 |
+
&::after {
|
10 |
+
transition-property: none;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
|
14 |
+
&.is-active {
|
15 |
+
.responsive-menu-inner {
|
16 |
+
transform: rotate(45deg);
|
17 |
+
|
18 |
+
&::before {
|
19 |
+
top: 0;
|
20 |
+
opacity: 0;
|
21 |
+
}
|
22 |
+
|
23 |
+
&::after {
|
24 |
+
bottom: 0;
|
25 |
+
transform: rotate(-90deg);
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
src/views/admin/main.phtml
ADDED
@@ -0,0 +1,108 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
use ResponsiveMenu\Formatters\Tabs as Tabs;
|
4 |
+
use ResponsiveMenu\Formatters\Text as Text;
|
5 |
+
// This is horrible!
|
6 |
+
include dirname(dirname(dirname(__FILE__))) . '/config/admin_ordering.php';
|
7 |
+
|
8 |
+
$tabs = new ResponsiveMenu\ViewModels\Components\Admin\Tabs($order_mapping);
|
9 |
+
$boxes = new ResponsiveMenu\ViewModels\Components\Admin\Boxes($order_mapping, $l['options']);
|
10 |
+
|
11 |
+
?>
|
12 |
+
<div class="wrap">
|
13 |
+
<div id="poststuff">
|
14 |
+
<div id="postbox-container" class="postbox-container responsive-menu-postbox-container">
|
15 |
+
<?php if(isset($l['flash']['success'])): ?>
|
16 |
+
<div class="updated notice notice-success is-dismissible" id="message">
|
17 |
+
<p><?php _e($l['flash']['success'], 'responsive-menu'); ?></p>
|
18 |
+
<button class="notice-dismiss" type="button">
|
19 |
+
<span class="screen-reader-text">
|
20 |
+
<?php _e('Dismiss this notice', 'responsive-menu') ?>.
|
21 |
+
</span>
|
22 |
+
</button>
|
23 |
+
</div> <!-- updated -->
|
24 |
+
<?php endif; ?>
|
25 |
+
<?php if(isset($l['flash']['errors'])): ?>
|
26 |
+
<div class="notice notice-error is-dismissible" id="message">
|
27 |
+
<ul>
|
28 |
+
<?php foreach($l['flash']['errors'] as $error): ?>
|
29 |
+
<li><?php _e($error, 'responsive-menu'); ?></li>
|
30 |
+
<?php endforeach; ?>
|
31 |
+
</ul>
|
32 |
+
<button class="notice-dismiss" type="button">
|
33 |
+
<span class="screen-reader-text">
|
34 |
+
<?php _e('Dismiss this notice', 'responsive-menu') ?>.
|
35 |
+
</span>
|
36 |
+
</button>
|
37 |
+
</div>
|
38 |
+
<?php endif; ?>
|
39 |
+
|
40 |
+
<div class="tabs_container">
|
41 |
+
<?php echo $tabs->render(); ?>
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<div class="key-container">
|
45 |
+
<a href="https://responsive.menu/why-go-pro/?utm_source=free-plugin&utm_medium=keys&utm_campaign=free-plugin-keys" target="_blank">
|
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>
|
67 |
+
<input type="submit" id="responsive_menu_submit" class="button submit" name="responsive_menu_submit" value="<?php _e('Update Options', 'responsive-menu') ?>" />
|
68 |
+
</form>
|
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/?utm_source=free-plugin&utm_medium=preview&utm_campaign=free-plugin-preview" 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="https://responsive.menu/why-go-pro/?utm_source=free-plugin&utm_medium=banner&utm_campaign=free-plugin-banner" class="button"><?php _e('Upgrade Now', 'responsive-menu'); ?></a>
|
100 |
+
</div>
|
101 |
+
<div id="docs_banner">
|
102 |
+
<?php _e('Confused? Check out our documentation', 'responsive-menu'); ?>
|
103 |
+
<a target="_blank" href="https://responsive.menu/docs" class="button"><?php _e('View Docs', 'responsive-menu'); ?></a>
|
104 |
+
</div>
|
105 |
+
</div> <!-- #banner_area -->
|
106 |
+
</div> <!-- #postbox-container -->
|
107 |
+
</div> <!-- #poststuff -->
|
108 |
+
</div> <!-- #wrap -->
|
src/views/button.phtml
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php echo $l['button'];
|
src/views/menu.phtml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div id="responsive-menu-container"
|
2 |
+
class="
|
3 |
+
<?php echo $l['options']['animation_type']; ?>-<?php echo $l['options']['menu_appear_from']; ?>
|
4 |
+
">
|
5 |
+
<div id="responsive-menu-wrapper">
|
6 |
+
<?php echo $l['menu']; ?>
|
7 |
+
</div>
|
8 |
+
</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/?utm_source=free-plugin&utm_medium=preview&utm_campaign=free-plugin-preview" target="_blank">', '</a>'), 'responsive-menu'); ?></div>
|
translations/responsive-menu-de_DE.mo
DELETED
Binary file
|
translations/responsive-menu-de_DE.po
DELETED
@@ -1,958 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu WordPress\n"
|
4 |
-
"POT-Creation-Date: 2015-08-19 21:38+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-08-19 21:38+0100\n"
|
6 |
-
"Last-Translator: ResponsiveMenu <support@responsive.menu>\n"
|
7 |
-
"Language-Team: ResponsiveMenu <support@responsive.menu>\n"
|
8 |
-
"Language: de\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.4\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: app\n"
|
17 |
-
|
18 |
-
#: app/config.php:84 app/views/admin/page.phtml:658
|
19 |
-
msgid "Menu Title"
|
20 |
-
msgstr ""
|
21 |
-
|
22 |
-
#: app/controllers/AdminController.php:56
|
23 |
-
#: app/controllers/AdminController.php:57
|
24 |
-
msgid "Responsive Menu"
|
25 |
-
msgstr ""
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
msgid "Settings"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: app/controllers/GlobalController.php:57
|
32 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: app/library/responsive-menu/Export.php:23
|
36 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: app/library/responsive-menu/Export.php:43
|
40 |
-
msgid "You can download your exported file by clicking here"
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
#: app/library/responsive-menu/Import.php:17
|
44 |
-
msgid "No Import File Attached"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: app/library/responsive-menu/Import.php:20
|
48 |
-
msgid "Incorrect Import File Format"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: app/library/responsive-menu/Import.php:23
|
52 |
-
msgid "Import File Too Large"
|
53 |
-
msgstr ""
|
54 |
-
|
55 |
-
#: app/library/responsive-menu/Import.php:26
|
56 |
-
msgid "Import File Not Valid"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#: app/library/responsive-menu/View.php:68
|
60 |
-
msgid "Search"
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: app/models/AdminModel.php:368
|
64 |
-
msgid "You have successfully updated the Responsive Menu options"
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
#: app/models/CSSModel.php:24
|
68 |
-
msgid "Unable to create CSS file"
|
69 |
-
msgstr ""
|
70 |
-
|
71 |
-
#: app/models/FolderModel.php:26
|
72 |
-
msgid "Unable to create data folders"
|
73 |
-
msgstr ""
|
74 |
-
|
75 |
-
#: app/models/FolderModel.php:29
|
76 |
-
msgid "Unable to create CSS folders"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#: app/models/FolderModel.php:32
|
80 |
-
msgid "Unable to create JS folders"
|
81 |
-
msgstr ""
|
82 |
-
|
83 |
-
#: app/models/JSModel.php:24
|
84 |
-
msgid "Unable to create JS file"
|
85 |
-
msgstr ""
|
86 |
-
|
87 |
-
#: app/views/admin/page.phtml:202
|
88 |
-
msgid "Version"
|
89 |
-
msgstr ""
|
90 |
-
|
91 |
-
#: app/views/admin/page.phtml:211 app/views/admin/page.phtml:1924
|
92 |
-
msgid "Update Responsive Menu Options"
|
93 |
-
msgstr ""
|
94 |
-
|
95 |
-
#: app/views/admin/page.phtml:215
|
96 |
-
msgid "Responsive Menu Options"
|
97 |
-
msgstr ""
|
98 |
-
|
99 |
-
#: app/views/admin/page.phtml:215
|
100 |
-
msgid "Go Pro - Upgrade now"
|
101 |
-
msgstr ""
|
102 |
-
|
103 |
-
#: app/views/admin/page.phtml:234
|
104 |
-
msgid "Meta Tag Check"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#: app/views/admin/page.phtml:239
|
108 |
-
msgid "Recommended Metaport Tag"
|
109 |
-
msgstr ""
|
110 |
-
|
111 |
-
#: app/views/admin/page.phtml:251 app/views/admin/page.phtml:931
|
112 |
-
#: app/views/admin/page.phtml:1329 app/views/admin/page.phtml:1873
|
113 |
-
msgid "Note"
|
114 |
-
msgstr ""
|
115 |
-
|
116 |
-
#: app/views/admin/page.phtml:252
|
117 |
-
msgid "This is only a reference guide and yours may vary slightly"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: app/views/admin/page.phtml:258
|
121 |
-
msgid "Transient Caching"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: app/views/admin/page.phtml:265
|
125 |
-
msgid "Turn on transient caching"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: app/views/admin/page.phtml:268
|
129 |
-
#, php-format
|
130 |
-
msgid ""
|
131 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
132 |
-
"this will break active links etc."
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#: app/views/admin/page.phtml:283
|
136 |
-
msgid "Shortcode Support"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#: app/views/admin/page.phtml:292
|
140 |
-
msgid "Click to use shortcode"
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: app/views/admin/page.phtml:294
|
144 |
-
msgid ""
|
145 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
146 |
-
msgstr ""
|
147 |
-
|
148 |
-
#: app/views/admin/page.phtml:308
|
149 |
-
msgid ""
|
150 |
-
"For a list of available shortcode options with explanations please visit the "
|
151 |
-
"following page:"
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
#: app/views/admin/page.phtml:311
|
155 |
-
msgid "Shortcode Options"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: app/views/admin/page.phtml:319
|
159 |
-
msgid "Available Shortcode Options/Values"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: app/views/admin/page.phtml:323 app/views/admin/page.phtml:351
|
163 |
-
msgid "Option"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: app/views/admin/page.phtml:324
|
167 |
-
msgid "Values"
|
168 |
-
msgstr ""
|
169 |
-
|
170 |
-
#: app/views/admin/page.phtml:346
|
171 |
-
msgid "Sorry, there are no available options"
|
172 |
-
msgstr ""
|
173 |
-
|
174 |
-
#: app/views/admin/page.phtml:352
|
175 |
-
msgid "Example Value"
|
176 |
-
msgstr ""
|
177 |
-
|
178 |
-
#: app/views/admin/page.phtml:400 app/views/admin/page.phtml:1401
|
179 |
-
#: app/views/admin/page.phtml:1545
|
180 |
-
msgid "e.g"
|
181 |
-
msgstr ""
|
182 |
-
|
183 |
-
#: app/views/admin/page.phtml:413
|
184 |
-
msgid "Click Button Settings"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#: app/views/admin/page.phtml:419
|
188 |
-
msgid "Click Button Title"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: app/views/admin/page.phtml:421
|
192 |
-
msgid "This is the title under the 3 lines of the click button"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: app/views/admin/page.phtml:431
|
196 |
-
msgid "Click Button Image"
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
#: app/views/admin/page.phtml:433
|
200 |
-
msgid ""
|
201 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
202 |
-
"will be used"
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
#: app/views/admin/page.phtml:445 app/views/admin/page.phtml:483
|
206 |
-
#: app/views/admin/page.phtml:685 app/views/admin/page.phtml:901
|
207 |
-
#: app/views/admin/page.phtml:921
|
208 |
-
msgid "Upload Image"
|
209 |
-
msgstr ""
|
210 |
-
|
211 |
-
#: app/views/admin/page.phtml:454
|
212 |
-
msgid "Change click menu to an X on click"
|
213 |
-
msgstr ""
|
214 |
-
|
215 |
-
#: app/views/admin/page.phtml:457
|
216 |
-
msgid "Tick this if you would like the 3 lines to turn into an x once clicked"
|
217 |
-
msgstr ""
|
218 |
-
|
219 |
-
#: app/views/admin/page.phtml:469
|
220 |
-
msgid "Click Button Image When Clicked"
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: app/views/admin/page.phtml:471
|
224 |
-
msgid ""
|
225 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
226 |
-
"empty, the 3 lines will be used"
|
227 |
-
msgstr ""
|
228 |
-
|
229 |
-
#: app/views/admin/page.phtml:495
|
230 |
-
msgid "Fixed Positioning"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: app/views/admin/page.phtml:497
|
234 |
-
msgid ""
|
235 |
-
"Tick this if you would like the click button to remain in the same place "
|
236 |
-
"when scrolling"
|
237 |
-
msgstr ""
|
238 |
-
|
239 |
-
#: app/views/admin/page.phtml:510
|
240 |
-
msgid "Click Trigger"
|
241 |
-
msgstr ""
|
242 |
-
|
243 |
-
#: app/views/admin/page.phtml:512
|
244 |
-
msgid "You can set a custom ID or class for custom triggers here if you wish."
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#: app/views/admin/page.phtml:525
|
248 |
-
msgid "Click Button Size Settings"
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#: app/views/admin/page.phtml:531
|
252 |
-
msgid "Width"
|
253 |
-
msgstr ""
|
254 |
-
|
255 |
-
#: app/views/admin/page.phtml:533
|
256 |
-
msgid "This is the width of the individual 3 lines"
|
257 |
-
msgstr ""
|
258 |
-
|
259 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
260 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
261 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
262 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
263 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
264 |
-
#: app/views/admin/page.phtml:1538
|
265 |
-
msgid "px"
|
266 |
-
msgstr ""
|
267 |
-
|
268 |
-
#: app/views/admin/page.phtml:545
|
269 |
-
msgid "Height"
|
270 |
-
msgstr ""
|
271 |
-
|
272 |
-
#: app/views/admin/page.phtml:547
|
273 |
-
msgid "This is the height of the individual 3 lines"
|
274 |
-
msgstr ""
|
275 |
-
|
276 |
-
#: app/views/admin/page.phtml:561
|
277 |
-
msgid "Margin"
|
278 |
-
msgstr ""
|
279 |
-
|
280 |
-
#: app/views/admin/page.phtml:563
|
281 |
-
msgid "This is the margin between the individual 3 lines"
|
282 |
-
msgstr ""
|
283 |
-
|
284 |
-
#: app/views/admin/page.phtml:583
|
285 |
-
msgid "Click Button Location Settings"
|
286 |
-
msgstr ""
|
287 |
-
|
288 |
-
#: app/views/admin/page.phtml:589 app/views/admin/page.phtml:747
|
289 |
-
msgid "Top"
|
290 |
-
msgstr ""
|
291 |
-
|
292 |
-
#: app/views/admin/page.phtml:591
|
293 |
-
msgid ""
|
294 |
-
"This is the distance from the top of the page in px that the click button "
|
295 |
-
"will be displayed"
|
296 |
-
msgstr ""
|
297 |
-
|
298 |
-
#: app/views/admin/page.phtml:603
|
299 |
-
msgid "Left/Right Distance"
|
300 |
-
msgstr ""
|
301 |
-
|
302 |
-
#: app/views/admin/page.phtml:605
|
303 |
-
msgid ""
|
304 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
305 |
-
"that the menu will be displayed"
|
306 |
-
msgstr ""
|
307 |
-
|
308 |
-
#: app/views/admin/page.phtml:619
|
309 |
-
msgid "Left/Right"
|
310 |
-
msgstr ""
|
311 |
-
|
312 |
-
#: app/views/admin/page.phtml:621
|
313 |
-
msgid ""
|
314 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
315 |
-
"or right"
|
316 |
-
msgstr ""
|
317 |
-
|
318 |
-
#: app/views/admin/page.phtml:651
|
319 |
-
msgid "Menu Settings"
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: app/views/admin/page.phtml:660
|
323 |
-
msgid "This is the title at the top of the responsive menu"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#: app/views/admin/page.phtml:671
|
327 |
-
msgid "Menu Image"
|
328 |
-
msgstr ""
|
329 |
-
|
330 |
-
#: app/views/admin/page.phtml:673
|
331 |
-
msgid ""
|
332 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
333 |
-
"is 32px x 32px"
|
334 |
-
msgstr ""
|
335 |
-
|
336 |
-
#: app/views/admin/page.phtml:695
|
337 |
-
msgid "Choose Menu To Responsify"
|
338 |
-
msgstr ""
|
339 |
-
|
340 |
-
#: app/views/admin/page.phtml:697
|
341 |
-
msgid "This is the menu that will be used responsively"
|
342 |
-
msgstr ""
|
343 |
-
|
344 |
-
#: app/views/admin/page.phtml:717
|
345 |
-
msgid "You haven't set up any site menus yet"
|
346 |
-
msgstr ""
|
347 |
-
|
348 |
-
#: app/views/admin/page.phtml:726
|
349 |
-
msgid "Slide Side"
|
350 |
-
msgstr ""
|
351 |
-
|
352 |
-
#: app/views/admin/page.phtml:728
|
353 |
-
msgid "This is the side of the screen from which the menu will slide"
|
354 |
-
msgstr ""
|
355 |
-
|
356 |
-
#: app/views/admin/page.phtml:735 app/views/admin/page.phtml:1288
|
357 |
-
#: app/views/admin/page.phtml:1295
|
358 |
-
msgid "Left"
|
359 |
-
msgstr ""
|
360 |
-
|
361 |
-
#: app/views/admin/page.phtml:741 app/views/admin/page.phtml:1305
|
362 |
-
msgid "Right"
|
363 |
-
msgstr ""
|
364 |
-
|
365 |
-
#: app/views/admin/page.phtml:753
|
366 |
-
msgid "Bottom"
|
367 |
-
msgstr ""
|
368 |
-
|
369 |
-
#: app/views/admin/page.phtml:766
|
370 |
-
msgid "Choose Theme Location Menu To Responsify"
|
371 |
-
msgstr ""
|
372 |
-
|
373 |
-
#: app/views/admin/page.phtml:768
|
374 |
-
msgid ""
|
375 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
376 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
377 |
-
"like polylang)"
|
378 |
-
msgstr ""
|
379 |
-
|
380 |
-
#: app/views/admin/page.phtml:787
|
381 |
-
msgid "None"
|
382 |
-
msgstr ""
|
383 |
-
|
384 |
-
#: app/views/admin/page.phtml:794
|
385 |
-
msgid "You haven't set up any menus location yet"
|
386 |
-
msgstr ""
|
387 |
-
|
388 |
-
#: app/views/admin/page.phtml:802
|
389 |
-
msgid "Menu Title Link"
|
390 |
-
msgstr ""
|
391 |
-
|
392 |
-
#: app/views/admin/page.phtml:804
|
393 |
-
msgid "This is the link location for the title"
|
394 |
-
msgstr ""
|
395 |
-
|
396 |
-
#: app/views/admin/page.phtml:814
|
397 |
-
msgid "Menu Title Link Location"
|
398 |
-
msgstr ""
|
399 |
-
|
400 |
-
#: app/views/admin/page.phtml:816
|
401 |
-
msgid "This is where your title page will be opened once clicked"
|
402 |
-
msgstr ""
|
403 |
-
|
404 |
-
#: app/views/admin/page.phtml:823
|
405 |
-
msgid "New Tab"
|
406 |
-
msgstr ""
|
407 |
-
|
408 |
-
#: app/views/admin/page.phtml:829
|
409 |
-
msgid "Same Page"
|
410 |
-
msgstr ""
|
411 |
-
|
412 |
-
#: app/views/admin/page.phtml:835
|
413 |
-
msgid "Parent Page"
|
414 |
-
msgstr ""
|
415 |
-
|
416 |
-
#: app/views/admin/page.phtml:841
|
417 |
-
msgid "Full Window Body"
|
418 |
-
msgstr ""
|
419 |
-
|
420 |
-
#: app/views/admin/page.phtml:852
|
421 |
-
msgid "Sub Menu Arrow Settings"
|
422 |
-
msgstr ""
|
423 |
-
|
424 |
-
#: app/views/admin/page.phtml:858
|
425 |
-
msgid "Active Geometric Shape"
|
426 |
-
msgstr ""
|
427 |
-
|
428 |
-
#: app/views/admin/page.phtml:869
|
429 |
-
msgid "Inactive Geometric Shape"
|
430 |
-
msgstr ""
|
431 |
-
|
432 |
-
#: app/views/admin/page.phtml:882
|
433 |
-
msgid "You can find a list of Geometric HTML shape codes below"
|
434 |
-
msgstr ""
|
435 |
-
|
436 |
-
#: app/views/admin/page.phtml:889
|
437 |
-
msgid "Active Image"
|
438 |
-
msgstr ""
|
439 |
-
|
440 |
-
#: app/views/admin/page.phtml:909
|
441 |
-
msgid "Inactive Image"
|
442 |
-
msgstr ""
|
443 |
-
|
444 |
-
#: app/views/admin/page.phtml:932
|
445 |
-
msgid ""
|
446 |
-
"Images have preference over shapes, to use HTML shapes please leave the "
|
447 |
-
"image field blank"
|
448 |
-
msgstr ""
|
449 |
-
|
450 |
-
#: app/views/admin/page.phtml:939
|
451 |
-
msgid "Colour Settings"
|
452 |
-
msgstr ""
|
453 |
-
|
454 |
-
#: app/views/admin/page.phtml:941
|
455 |
-
msgid "Background Colours"
|
456 |
-
msgstr ""
|
457 |
-
|
458 |
-
#: app/views/admin/page.phtml:945
|
459 |
-
msgid "Click Button"
|
460 |
-
msgstr ""
|
461 |
-
|
462 |
-
#: app/views/admin/page.phtml:953
|
463 |
-
msgid "Click Button Line & Text Colour"
|
464 |
-
msgstr ""
|
465 |
-
|
466 |
-
#: app/views/admin/page.phtml:955
|
467 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
468 |
-
msgstr ""
|
469 |
-
|
470 |
-
#: app/views/admin/page.phtml:968
|
471 |
-
msgid "Click Button Background Colour"
|
472 |
-
msgstr ""
|
473 |
-
|
474 |
-
#: app/views/admin/page.phtml:970
|
475 |
-
msgid "This is the background colour of the 3 lines container"
|
476 |
-
msgstr ""
|
477 |
-
|
478 |
-
#: app/views/admin/page.phtml:985
|
479 |
-
msgid "Click Button Background Transparent"
|
480 |
-
msgstr ""
|
481 |
-
|
482 |
-
#: app/views/admin/page.phtml:987
|
483 |
-
msgid ""
|
484 |
-
"Tick this if you would like a transparent background on the click button"
|
485 |
-
msgstr ""
|
486 |
-
|
487 |
-
#: app/views/admin/page.phtml:1007
|
488 |
-
msgid "Main Menu"
|
489 |
-
msgstr ""
|
490 |
-
|
491 |
-
#: app/views/admin/page.phtml:1015
|
492 |
-
msgid "Menu Background Colour"
|
493 |
-
msgstr ""
|
494 |
-
|
495 |
-
#: app/views/admin/page.phtml:1017
|
496 |
-
msgid "This is the background colour of the expanded menu"
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
#: app/views/admin/page.phtml:1030
|
500 |
-
msgid "Menu Background Hover Colour"
|
501 |
-
msgstr ""
|
502 |
-
|
503 |
-
#: app/views/admin/page.phtml:1032
|
504 |
-
msgid "This is the hover background colour of the expanded menu"
|
505 |
-
msgstr ""
|
506 |
-
|
507 |
-
#: app/views/admin/page.phtml:1047
|
508 |
-
msgid "Menu Link Border Colour"
|
509 |
-
msgstr ""
|
510 |
-
|
511 |
-
#: app/views/admin/page.phtml:1049
|
512 |
-
msgid "This is the border colour of the menu links"
|
513 |
-
msgstr ""
|
514 |
-
|
515 |
-
#: app/views/admin/page.phtml:1062
|
516 |
-
msgid "Title Background Colour"
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
-
#: app/views/admin/page.phtml:1064
|
520 |
-
msgid "This is the background colour of the menu title"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
-
#: app/views/admin/page.phtml:1079
|
524 |
-
msgid "Current Page Link Background Colour"
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
#: app/views/admin/page.phtml:1081
|
528 |
-
msgid "This is the background colour of the current page link"
|
529 |
-
msgstr ""
|
530 |
-
|
531 |
-
#: app/views/admin/page.phtml:1094
|
532 |
-
msgid "Current Page Link Background Hover Colour"
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: app/views/admin/page.phtml:1096
|
536 |
-
msgid "This is the hover background colour of the current page link"
|
537 |
-
msgstr ""
|
538 |
-
|
539 |
-
#: app/views/admin/page.phtml:1110
|
540 |
-
msgid "Text Colours"
|
541 |
-
msgstr ""
|
542 |
-
|
543 |
-
#: app/views/admin/page.phtml:1119
|
544 |
-
msgid "Menu Title Colour"
|
545 |
-
msgstr ""
|
546 |
-
|
547 |
-
#: app/views/admin/page.phtml:1121
|
548 |
-
msgid "This is the text colour of the menu title"
|
549 |
-
msgstr ""
|
550 |
-
|
551 |
-
#: app/views/admin/page.phtml:1134
|
552 |
-
msgid "Menu Title Hover Colour"
|
553 |
-
msgstr ""
|
554 |
-
|
555 |
-
#: app/views/admin/page.phtml:1136
|
556 |
-
msgid "This is the hover colour of the menu title"
|
557 |
-
msgstr ""
|
558 |
-
|
559 |
-
#: app/views/admin/page.phtml:1151
|
560 |
-
msgid "Menu Link Colour"
|
561 |
-
msgstr ""
|
562 |
-
|
563 |
-
#: app/views/admin/page.phtml:1153
|
564 |
-
msgid "This is the text colour of the menu links"
|
565 |
-
msgstr ""
|
566 |
-
|
567 |
-
#: app/views/admin/page.phtml:1166
|
568 |
-
msgid "Menu Link Hover Colour"
|
569 |
-
msgstr ""
|
570 |
-
|
571 |
-
#: app/views/admin/page.phtml:1168
|
572 |
-
msgid "This is the text hover colour of the menu links"
|
573 |
-
msgstr ""
|
574 |
-
|
575 |
-
#: app/views/admin/page.phtml:1184
|
576 |
-
msgid "Current Page Link Colour"
|
577 |
-
msgstr ""
|
578 |
-
|
579 |
-
#: app/views/admin/page.phtml:1186
|
580 |
-
msgid "This is the text colour of the current page link"
|
581 |
-
msgstr ""
|
582 |
-
|
583 |
-
#: app/views/admin/page.phtml:1199
|
584 |
-
msgid "Current Page Link Hover Colour"
|
585 |
-
msgstr ""
|
586 |
-
|
587 |
-
#: app/views/admin/page.phtml:1201
|
588 |
-
msgid "This is the text hover colour of the current page link"
|
589 |
-
msgstr ""
|
590 |
-
|
591 |
-
#: app/views/admin/page.phtml:1218
|
592 |
-
msgid "Style Settings"
|
593 |
-
msgstr ""
|
594 |
-
|
595 |
-
#: app/views/admin/page.phtml:1225
|
596 |
-
msgid "Font"
|
597 |
-
msgstr ""
|
598 |
-
|
599 |
-
#: app/views/admin/page.phtml:1227
|
600 |
-
msgid "Enter a font name below, if empty your default site font will be used"
|
601 |
-
msgstr ""
|
602 |
-
|
603 |
-
#: app/views/admin/page.phtml:1238
|
604 |
-
msgid "Font Size"
|
605 |
-
msgstr ""
|
606 |
-
|
607 |
-
#: app/views/admin/page.phtml:1240
|
608 |
-
msgid "Enter a font size in pixels below"
|
609 |
-
msgstr ""
|
610 |
-
|
611 |
-
#: app/views/admin/page.phtml:1240 app/views/admin/page.phtml:1257
|
612 |
-
#: app/views/admin/page.phtml:1271 app/views/admin/page.phtml:1288
|
613 |
-
#: app/views/admin/page.phtml:1315 app/views/admin/page.phtml:1417
|
614 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
615 |
-
msgid "default"
|
616 |
-
msgstr ""
|
617 |
-
|
618 |
-
#: app/views/admin/page.phtml:1255
|
619 |
-
msgid "Click Button Font Size"
|
620 |
-
msgstr ""
|
621 |
-
|
622 |
-
#: app/views/admin/page.phtml:1257
|
623 |
-
msgid "Enter a click button font size in pixels below"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: app/views/admin/page.phtml:1269
|
627 |
-
msgid "Title Font Size"
|
628 |
-
msgstr ""
|
629 |
-
|
630 |
-
#: app/views/admin/page.phtml:1271
|
631 |
-
msgid "Enter a title font size in pixels below"
|
632 |
-
msgstr ""
|
633 |
-
|
634 |
-
#: app/views/admin/page.phtml:1286
|
635 |
-
msgid "Text Alignment"
|
636 |
-
msgstr ""
|
637 |
-
|
638 |
-
#: app/views/admin/page.phtml:1288
|
639 |
-
msgid "Enter a text alignment option below"
|
640 |
-
msgstr ""
|
641 |
-
|
642 |
-
#: app/views/admin/page.phtml:1300
|
643 |
-
msgid "Centre"
|
644 |
-
msgstr ""
|
645 |
-
|
646 |
-
#: app/views/admin/page.phtml:1313
|
647 |
-
msgid "Links Height"
|
648 |
-
msgstr ""
|
649 |
-
|
650 |
-
#: app/views/admin/page.phtml:1315
|
651 |
-
msgid "Enter a link height size in pixels below"
|
652 |
-
msgstr ""
|
653 |
-
|
654 |
-
#: app/views/admin/page.phtml:1330
|
655 |
-
msgid ""
|
656 |
-
"Setting the below two values to the same number will give you a fixed width "
|
657 |
-
"effect"
|
658 |
-
msgstr ""
|
659 |
-
|
660 |
-
#: app/views/admin/page.phtml:1340
|
661 |
-
msgid "Minimum Width"
|
662 |
-
msgstr ""
|
663 |
-
|
664 |
-
#: app/views/admin/page.phtml:1342
|
665 |
-
msgid "Enter a minimum menu width size in pixels below"
|
666 |
-
msgstr ""
|
667 |
-
|
668 |
-
#: app/views/admin/page.phtml:1354
|
669 |
-
msgid "Maximum Width"
|
670 |
-
msgstr ""
|
671 |
-
|
672 |
-
#: app/views/admin/page.phtml:1356
|
673 |
-
msgid "Enter a maximum menu width size in pixels below"
|
674 |
-
msgstr ""
|
675 |
-
|
676 |
-
#: app/views/admin/page.phtml:1371
|
677 |
-
msgid "Animation Settings"
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#: app/views/admin/page.phtml:1377
|
681 |
-
msgid "Slide Animation"
|
682 |
-
msgstr ""
|
683 |
-
|
684 |
-
#: app/views/admin/page.phtml:1379
|
685 |
-
msgid "Choose the type of animation applied to the menu"
|
686 |
-
msgstr ""
|
687 |
-
|
688 |
-
#: app/views/admin/page.phtml:1386
|
689 |
-
msgid "Overlay"
|
690 |
-
msgstr ""
|
691 |
-
|
692 |
-
#: app/views/admin/page.phtml:1391
|
693 |
-
msgid "Push"
|
694 |
-
msgstr ""
|
695 |
-
|
696 |
-
#: app/views/admin/page.phtml:1399
|
697 |
-
msgid "Page Wrappers CSS"
|
698 |
-
msgstr ""
|
699 |
-
|
700 |
-
#: app/views/admin/page.phtml:1401
|
701 |
-
msgid ""
|
702 |
-
"This is the CSS of the wrapper you want to push when using the push animation"
|
703 |
-
msgstr ""
|
704 |
-
|
705 |
-
#: app/views/admin/page.phtml:1415
|
706 |
-
msgid "Animation Speed"
|
707 |
-
msgstr ""
|
708 |
-
|
709 |
-
#: app/views/admin/page.phtml:1417
|
710 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
711 |
-
msgstr ""
|
712 |
-
|
713 |
-
#: app/views/admin/page.phtml:1424 app/views/admin/page.phtml:1438
|
714 |
-
msgid "seconds"
|
715 |
-
msgstr ""
|
716 |
-
|
717 |
-
#: app/views/admin/page.phtml:1429
|
718 |
-
msgid "Transition Speed"
|
719 |
-
msgstr ""
|
720 |
-
|
721 |
-
#: app/views/admin/page.phtml:1431
|
722 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
723 |
-
msgstr ""
|
724 |
-
|
725 |
-
#: app/views/admin/page.phtml:1445
|
726 |
-
msgid "Accordion Animation For Sub-Menus"
|
727 |
-
msgstr ""
|
728 |
-
|
729 |
-
#: app/views/admin/page.phtml:1447
|
730 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
731 |
-
msgstr ""
|
732 |
-
|
733 |
-
#: app/views/admin/page.phtml:1460
|
734 |
-
msgid "Push button with Animation"
|
735 |
-
msgstr ""
|
736 |
-
|
737 |
-
#: app/views/admin/page.phtml:1462
|
738 |
-
msgid "Tick to enable the click button to be pushed with animation"
|
739 |
-
msgstr ""
|
740 |
-
|
741 |
-
#: app/views/admin/page.phtml:1480
|
742 |
-
msgid "Additional HTML Content Settings"
|
743 |
-
msgstr ""
|
744 |
-
|
745 |
-
#: app/views/admin/page.phtml:1487
|
746 |
-
msgid "Additional HTML Content"
|
747 |
-
msgstr ""
|
748 |
-
|
749 |
-
#: app/views/admin/page.phtml:1489
|
750 |
-
msgid ""
|
751 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
752 |
-
"banners etc. (accepts shortcodes)"
|
753 |
-
msgstr ""
|
754 |
-
|
755 |
-
#: app/views/admin/page.phtml:1496
|
756 |
-
msgid "Additional HTML Content Positioning"
|
757 |
-
msgstr ""
|
758 |
-
|
759 |
-
#: app/views/admin/page.phtml:1498
|
760 |
-
msgid "Select where you would like the additional HTML content to appear"
|
761 |
-
msgstr ""
|
762 |
-
|
763 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
764 |
-
msgid "Above Menu Links"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
768 |
-
msgid "Below Menu Links"
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#: app/views/admin/page.phtml:1523
|
772 |
-
msgid "Menu Advanced Settings"
|
773 |
-
msgstr ""
|
774 |
-
|
775 |
-
#: app/views/admin/page.phtml:1529
|
776 |
-
msgid "Menu Breakpoint"
|
777 |
-
msgstr ""
|
778 |
-
|
779 |
-
#: app/views/admin/page.phtml:1531
|
780 |
-
msgid ""
|
781 |
-
"This is the point where the responsive menu will be visible in px width of "
|
782 |
-
"the browser"
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: app/views/admin/page.phtml:1543
|
786 |
-
msgid "CSS of Menu To Hide"
|
787 |
-
msgstr ""
|
788 |
-
|
789 |
-
#: app/views/admin/page.phtml:1545
|
790 |
-
msgid ""
|
791 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
792 |
-
msgstr ""
|
793 |
-
|
794 |
-
#: app/views/admin/page.phtml:1559
|
795 |
-
msgid "Menu Depth"
|
796 |
-
msgstr ""
|
797 |
-
|
798 |
-
#: app/views/admin/page.phtml:1561
|
799 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
800 |
-
msgstr ""
|
801 |
-
|
802 |
-
#: app/views/admin/page.phtml:1580
|
803 |
-
msgid "Menu Width"
|
804 |
-
msgstr ""
|
805 |
-
|
806 |
-
#: app/views/admin/page.phtml:1582
|
807 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
808 |
-
msgstr ""
|
809 |
-
|
810 |
-
#: app/views/admin/page.phtml:1603
|
811 |
-
msgid "Remove Search Box"
|
812 |
-
msgstr ""
|
813 |
-
|
814 |
-
#: app/views/admin/page.phtml:1605
|
815 |
-
msgid "Tick if you would like to remove the search box"
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: app/views/admin/page.phtml:1618
|
819 |
-
msgid "Search Box Positioning"
|
820 |
-
msgstr ""
|
821 |
-
|
822 |
-
#: app/views/admin/page.phtml:1620
|
823 |
-
msgid "Select where you would like the search box to appear"
|
824 |
-
msgstr ""
|
825 |
-
|
826 |
-
#: app/views/admin/page.phtml:1642
|
827 |
-
msgid "Click to Close Menu on Link Click"
|
828 |
-
msgstr ""
|
829 |
-
|
830 |
-
#: app/views/admin/page.phtml:1644
|
831 |
-
msgid ""
|
832 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
833 |
-
"single page sites"
|
834 |
-
msgstr ""
|
835 |
-
|
836 |
-
#: app/views/admin/page.phtml:1657
|
837 |
-
msgid "Auto Expand Current Parent Items"
|
838 |
-
msgstr ""
|
839 |
-
|
840 |
-
#: app/views/admin/page.phtml:1659
|
841 |
-
msgid ""
|
842 |
-
"Tick if you would like to make the current pages children expanded "
|
843 |
-
"automatically"
|
844 |
-
msgstr ""
|
845 |
-
|
846 |
-
#: app/views/admin/page.phtml:1673
|
847 |
-
msgid "Auto Expand Sub-Menus"
|
848 |
-
msgstr ""
|
849 |
-
|
850 |
-
#: app/views/admin/page.phtml:1675
|
851 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
852 |
-
msgstr ""
|
853 |
-
|
854 |
-
#: app/views/admin/page.phtml:1688
|
855 |
-
msgid "Ignore Parent Clicks"
|
856 |
-
msgstr ""
|
857 |
-
|
858 |
-
#: app/views/admin/page.phtml:1690
|
859 |
-
msgid "Tick if you would like to ignore clicks on parent links"
|
860 |
-
msgstr ""
|
861 |
-
|
862 |
-
#: app/views/admin/page.phtml:1704
|
863 |
-
msgid "Click to Close Menu on Page Click"
|
864 |
-
msgstr ""
|
865 |
-
|
866 |
-
#: app/views/admin/page.phtml:1706
|
867 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
868 |
-
msgstr ""
|
869 |
-
|
870 |
-
#: app/views/admin/page.phtml:1727
|
871 |
-
msgid "Technical Settings"
|
872 |
-
msgstr ""
|
873 |
-
|
874 |
-
#: app/views/admin/page.phtml:1733
|
875 |
-
msgid "Minify output"
|
876 |
-
msgstr ""
|
877 |
-
|
878 |
-
#: app/views/admin/page.phtml:1735
|
879 |
-
msgid ""
|
880 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
881 |
-
"file size"
|
882 |
-
msgstr ""
|
883 |
-
|
884 |
-
#: app/views/admin/page.phtml:1748
|
885 |
-
msgid "Include script in footer"
|
886 |
-
msgstr ""
|
887 |
-
|
888 |
-
#: app/views/admin/page.phtml:1750
|
889 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
890 |
-
msgstr ""
|
891 |
-
|
892 |
-
#: app/views/admin/page.phtml:1764
|
893 |
-
msgid "Include CSS/JS as external files"
|
894 |
-
msgstr ""
|
895 |
-
|
896 |
-
#: app/views/admin/page.phtml:1766
|
897 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
898 |
-
msgstr ""
|
899 |
-
|
900 |
-
#: app/views/admin/page.phtml:1777
|
901 |
-
msgid "Remove CSS !important tags"
|
902 |
-
msgstr ""
|
903 |
-
|
904 |
-
#: app/views/admin/page.phtml:1780
|
905 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
906 |
-
msgstr ""
|
907 |
-
|
908 |
-
#: app/views/admin/page.phtml:1781
|
909 |
-
msgid ""
|
910 |
-
"Ticking this will make it easier to over-ride the styles but may make the "
|
911 |
-
"default settings not display well"
|
912 |
-
msgstr ""
|
913 |
-
|
914 |
-
#: app/views/admin/page.phtml:1795
|
915 |
-
msgid "Custom Walker"
|
916 |
-
msgstr ""
|
917 |
-
|
918 |
-
#: app/views/admin/page.phtml:1803
|
919 |
-
msgid "Specify you own Walker for the menu (wp_nav_menu parameter)"
|
920 |
-
msgstr ""
|
921 |
-
|
922 |
-
#: app/views/admin/page.phtml:1804
|
923 |
-
msgid ""
|
924 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
925 |
-
"alone"
|
926 |
-
msgstr ""
|
927 |
-
|
928 |
-
#: app/views/admin/page.phtml:1833
|
929 |
-
msgid "Import File"
|
930 |
-
msgstr ""
|
931 |
-
|
932 |
-
#: app/views/admin/page.phtml:1840
|
933 |
-
msgid "Import Options From XML"
|
934 |
-
msgstr ""
|
935 |
-
|
936 |
-
#: app/views/admin/page.phtml:1859
|
937 |
-
msgid "Export Current Options"
|
938 |
-
msgstr ""
|
939 |
-
|
940 |
-
#: app/views/admin/page.phtml:1874
|
941 |
-
msgid ""
|
942 |
-
"Please be warned this will reset all your current settings, please export "
|
943 |
-
"your current files first"
|
944 |
-
msgstr ""
|
945 |
-
|
946 |
-
#: app/views/admin/page.phtml:1880
|
947 |
-
msgid "Reset ALL Current Options"
|
948 |
-
msgstr ""
|
949 |
-
|
950 |
-
#: app/views/admin/page.phtml:1895 app/views/admin/page.phtml:1908
|
951 |
-
msgid ""
|
952 |
-
"This feature is only available in the pro version, please click below to "
|
953 |
-
"upgrade"
|
954 |
-
msgstr ""
|
955 |
-
|
956 |
-
#: app/views/admin/page.phtml:1898 app/views/admin/page.phtml:1911
|
957 |
-
msgid "Upgrade now"
|
958 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
translations/responsive-menu-es_ES.mo
CHANGED
Binary file
|
translations/responsive-menu-es_ES.po
CHANGED
@@ -1,1153 +1,769 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu\n"
|
4 |
-
"POT-Creation-Date:
|
5 |
-
"PO-Revision-Date:
|
6 |
-
"Last-Translator:
|
7 |
-
"Language-Team:
|
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.
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
15 |
-
"X-Poedit-KeywordsList: __;_e
|
16 |
-
"X-Poedit-SearchPath-0:
|
17 |
|
18 |
-
#:
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
msgstr "Menú Flexible"
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
msgid "Settings"
|
29 |
-
msgstr "Ajustes"
|
30 |
-
|
31 |
-
#: app/controllers/GlobalController.php:57
|
32 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: app/
|
36 |
-
|
37 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
38 |
msgstr ""
|
39 |
-
"Hubo un problema al escribir los archivos CSS y JS, compruebe los js del "
|
40 |
-
"plugin y los permisos de carpeta/archivo del css"
|
41 |
|
42 |
-
#: app/
|
43 |
-
msgid "
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: app/
|
47 |
-
|
48 |
-
msgid "No Import File Attached"
|
49 |
-
msgstr "No es posible crear el archivo de CSS"
|
50 |
-
|
51 |
-
#: app/library/responsive-menu/Import.php:20
|
52 |
-
msgid "Incorrect Import File Format"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: app/
|
56 |
-
msgid "
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: app/
|
60 |
-
|
61 |
-
|
62 |
-
msgstr "No es posible crear el archivo de CSS"
|
63 |
-
|
64 |
-
#: app/library/responsive-menu/View.php:68
|
65 |
-
#, fuzzy
|
66 |
-
msgid "Search"
|
67 |
-
msgstr "Remover el Campo de Búsqueda"
|
68 |
|
69 |
-
#: app/
|
70 |
-
msgid "
|
71 |
-
msgstr "
|
72 |
|
73 |
-
#: app/
|
74 |
msgid "Unable to create CSS file"
|
75 |
-
msgstr "
|
76 |
-
|
77 |
-
#: app/models/FolderModel.php:26
|
78 |
-
msgid "Unable to create data folders"
|
79 |
-
msgstr "No es posible crear carpetas de datos"
|
80 |
-
|
81 |
-
#: app/models/FolderModel.php:29
|
82 |
-
msgid "Unable to create CSS folders"
|
83 |
-
msgstr "No es posible crear carpetas de CSS"
|
84 |
-
|
85 |
-
#: app/models/FolderModel.php:32
|
86 |
-
msgid "Unable to create JS folders"
|
87 |
-
msgstr "No es posible crear carpetas de JS"
|
88 |
|
89 |
-
#: app/
|
90 |
msgid "Unable to create JS file"
|
91 |
-
msgstr "No es posible crear el archivo de JS"
|
92 |
-
|
93 |
-
#: app/views/admin/page.phtml:202
|
94 |
-
msgid "Version"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#:
|
98 |
-
msgid "
|
99 |
-
msgstr "Actualizar Opciones del menú Flexible"
|
100 |
-
|
101 |
-
#: app/views/admin/page.phtml:215
|
102 |
-
msgid "Responsive Menu Options"
|
103 |
-
msgstr "Opciones del Menú Flexible"
|
104 |
-
|
105 |
-
#: app/views/admin/page.phtml:215
|
106 |
-
msgid "Go Pro - Upgrade now"
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: app/
|
110 |
-
|
111 |
-
|
112 |
-
msgstr "Comprobar Meta Etiqueta de Viewport "
|
113 |
|
114 |
-
#: app/
|
115 |
-
msgid "
|
116 |
-
msgstr "
|
117 |
|
118 |
-
#:
|
119 |
-
|
120 |
-
msgid "Note"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: app/
|
124 |
-
msgid "
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: app/
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: app/
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: app/
|
136 |
-
|
137 |
-
msgid ""
|
138 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
139 |
-
"this will break active links etc."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#:
|
143 |
-
msgid "
|
144 |
msgstr ""
|
145 |
|
146 |
-
#:
|
147 |
-
|
148 |
-
msgid "
|
149 |
-
msgstr "
|
150 |
|
151 |
-
#:
|
152 |
-
|
153 |
-
|
154 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
155 |
-
msgstr "Marque si desea remover el campo de búsqueda"
|
156 |
|
157 |
-
#:
|
158 |
msgid ""
|
159 |
-
"
|
160 |
-
"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#:
|
164 |
-
msgid "
|
165 |
msgstr ""
|
166 |
|
167 |
-
#:
|
168 |
-
msgid "
|
169 |
msgstr ""
|
170 |
|
171 |
-
#:
|
172 |
-
msgid "
|
173 |
msgstr ""
|
174 |
|
175 |
-
#:
|
176 |
-
msgid "
|
177 |
msgstr ""
|
178 |
|
179 |
-
#:
|
180 |
-
msgid "
|
181 |
msgstr ""
|
182 |
|
183 |
-
#:
|
184 |
-
msgid "
|
185 |
msgstr ""
|
186 |
|
187 |
-
#:
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
msgstr ""
|
195 |
|
196 |
-
#:
|
197 |
-
|
|
|
198 |
msgstr ""
|
199 |
|
200 |
-
#:
|
201 |
-
msgid "
|
202 |
msgstr ""
|
203 |
|
204 |
-
#:
|
205 |
-
msgid "
|
206 |
msgstr ""
|
207 |
|
208 |
-
#:
|
209 |
-
msgid ""
|
210 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
211 |
-
"will be used"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#:
|
215 |
-
|
216 |
-
|
217 |
-
msgid "Upload Image"
|
218 |
-
msgstr "Subir Imagen"
|
219 |
|
220 |
-
#:
|
221 |
-
msgid "
|
222 |
msgstr ""
|
223 |
|
224 |
-
#:
|
225 |
-
|
|
|
226 |
msgstr ""
|
227 |
-
"Marque esto si quiere que 3 líneas a convertir en una x cuando se hace clic"
|
228 |
|
229 |
-
#:
|
230 |
-
|
|
|
231 |
msgstr ""
|
232 |
|
233 |
-
#:
|
234 |
-
msgid ""
|
235 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
236 |
-
"empty, the 3 lines will be used"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#:
|
240 |
-
msgid "
|
241 |
-
msgstr "
|
242 |
|
243 |
-
#:
|
244 |
-
msgid ""
|
245 |
-
"Tick this if you would like the click button to remain in the same place "
|
246 |
-
"when scrolling"
|
247 |
msgstr ""
|
248 |
|
249 |
-
#:
|
250 |
-
msgid "
|
251 |
msgstr ""
|
252 |
|
253 |
-
#:
|
254 |
-
|
|
|
255 |
msgstr ""
|
256 |
|
257 |
-
#:
|
258 |
-
|
259 |
-
|
260 |
-
msgstr "Tamaño de la Fuente del Clic del Botón"
|
261 |
|
262 |
-
#:
|
263 |
-
|
264 |
-
|
265 |
-
msgstr "Ancho maximo del Menú"
|
266 |
-
|
267 |
-
#: app/views/admin/page.phtml:533
|
268 |
-
#, fuzzy
|
269 |
-
msgid "This is the width of the individual 3 lines"
|
270 |
-
msgstr "Este es el color del texto de los enlaces del menú"
|
271 |
-
|
272 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
273 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
274 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
275 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
276 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
277 |
-
#: app/views/admin/page.phtml:1538
|
278 |
-
msgid "px"
|
279 |
-
msgstr "px"
|
280 |
-
|
281 |
-
#: app/views/admin/page.phtml:545
|
282 |
-
#, fuzzy
|
283 |
-
msgid "Height"
|
284 |
-
msgstr "Altura de los Enlaces "
|
285 |
|
286 |
-
#:
|
287 |
-
|
288 |
-
|
289 |
-
msgstr "Este es el color del texto de los enlaces del menú"
|
290 |
|
291 |
-
#:
|
292 |
-
msgid "
|
293 |
msgstr ""
|
294 |
|
295 |
-
#:
|
296 |
-
msgid "
|
297 |
msgstr ""
|
298 |
|
299 |
-
#:
|
300 |
-
msgid "
|
301 |
msgstr ""
|
302 |
|
303 |
-
#:
|
304 |
-
msgid "
|
305 |
-
msgstr "
|
306 |
|
307 |
-
#:
|
308 |
-
msgid ""
|
309 |
-
"This is the distance from the top of the page in px that the click button "
|
310 |
-
"will be displayed"
|
311 |
msgstr ""
|
312 |
|
313 |
-
#:
|
314 |
-
msgid "
|
315 |
msgstr ""
|
316 |
|
317 |
-
#:
|
318 |
-
msgid ""
|
319 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
320 |
-
"that the menu will be displayed"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#:
|
324 |
-
msgid "
|
325 |
msgstr ""
|
326 |
|
327 |
-
#:
|
328 |
-
msgid ""
|
329 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
330 |
-
"or right"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#:
|
334 |
-
msgid "Menu
|
335 |
-
msgstr "
|
336 |
|
337 |
-
#:
|
338 |
-
msgid "
|
339 |
-
msgstr "
|
340 |
|
341 |
-
#:
|
342 |
-
msgid "
|
343 |
-
msgstr "
|
344 |
|
345 |
-
#:
|
346 |
-
msgid ""
|
347 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
348 |
-
"is 32px x 32px"
|
349 |
msgstr ""
|
350 |
-
"Esta es la imagen que se encuentra al lado del título del menú flexible. El "
|
351 |
-
"mejor tamaño es 32px x 32px"
|
352 |
|
353 |
-
#:
|
354 |
-
msgid "
|
355 |
-
msgstr "
|
356 |
|
357 |
-
#:
|
358 |
-
|
359 |
-
|
|
|
|
|
360 |
|
361 |
-
#:
|
362 |
-
msgid "
|
363 |
-
msgstr "
|
364 |
|
365 |
-
#:
|
366 |
-
msgid "
|
367 |
-
msgstr "
|
368 |
|
369 |
-
#:
|
370 |
-
msgid "
|
371 |
-
msgstr "
|
372 |
|
373 |
-
#:
|
374 |
-
|
375 |
-
|
376 |
-
msgstr "Izquierda"
|
377 |
|
378 |
-
#:
|
379 |
-
msgid "
|
380 |
-
msgstr "
|
381 |
|
382 |
-
#:
|
383 |
-
msgid "
|
384 |
msgstr ""
|
385 |
|
386 |
-
#:
|
387 |
-
msgid "
|
388 |
msgstr ""
|
389 |
|
390 |
-
#:
|
391 |
-
msgid ""
|
392 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
393 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
394 |
-
"like polylang)"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#:
|
398 |
-
msgid "
|
399 |
msgstr ""
|
400 |
|
401 |
-
#:
|
402 |
-
msgid "
|
403 |
msgstr ""
|
404 |
|
405 |
-
#:
|
406 |
-
|
407 |
-
|
408 |
-
msgstr "Color del Borde del Enlace del Menú"
|
409 |
|
410 |
-
#:
|
411 |
-
|
412 |
-
|
413 |
-
msgstr "translated"
|
414 |
|
415 |
-
#:
|
416 |
-
|
417 |
-
|
418 |
-
|
|
|
419 |
|
420 |
-
#:
|
421 |
-
|
|
|
|
|
422 |
msgstr ""
|
423 |
|
424 |
-
#:
|
425 |
-
msgid "
|
426 |
msgstr ""
|
427 |
|
428 |
-
#:
|
429 |
-
|
430 |
-
|
431 |
-
msgstr "translated"
|
432 |
|
433 |
-
#:
|
434 |
-
|
435 |
-
|
436 |
-
msgstr "translated"
|
437 |
|
438 |
-
#:
|
439 |
-
msgid "
|
440 |
msgstr ""
|
441 |
|
442 |
-
#:
|
443 |
-
|
444 |
-
|
445 |
-
msgstr "Configuraciones del Menú"
|
446 |
|
447 |
-
#:
|
448 |
-
msgid "
|
449 |
msgstr ""
|
450 |
|
451 |
-
#:
|
452 |
-
msgid "
|
453 |
msgstr ""
|
454 |
|
455 |
-
#:
|
456 |
-
msgid "
|
457 |
msgstr ""
|
458 |
|
459 |
-
#:
|
460 |
-
|
461 |
-
|
462 |
-
msgstr "Imagen del Menú "
|
463 |
|
464 |
-
#:
|
465 |
-
|
466 |
-
|
467 |
-
msgstr "Imagen del Menú "
|
468 |
|
469 |
-
#:
|
470 |
msgid ""
|
471 |
-
"
|
472 |
-
"
|
473 |
msgstr ""
|
474 |
|
475 |
-
#:
|
476 |
-
msgid "
|
477 |
-
msgstr "Ajustes de color"
|
478 |
-
|
479 |
-
#: app/views/admin/page.phtml:941
|
480 |
-
#, fuzzy
|
481 |
-
msgid "Background Colours"
|
482 |
-
msgstr "Colores de Fondos"
|
483 |
-
|
484 |
-
#: app/views/admin/page.phtml:945
|
485 |
-
#, fuzzy
|
486 |
-
msgid "Click Button"
|
487 |
-
msgstr "Tamaño de la Fuente del Clic del Botón"
|
488 |
-
|
489 |
-
#: app/views/admin/page.phtml:953
|
490 |
-
#, fuzzy
|
491 |
-
msgid "Click Button Line & Text Colour"
|
492 |
-
msgstr "Línea del Menú y Color del texto"
|
493 |
-
|
494 |
-
#: app/views/admin/page.phtml:955
|
495 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#:
|
499 |
-
|
500 |
-
|
501 |
-
msgstr "Color de Fondo del Botón del Menú"
|
502 |
-
|
503 |
-
#: app/views/admin/page.phtml:970
|
504 |
-
msgid "This is the background colour of the 3 lines container"
|
505 |
-
msgstr "Este es el color de fondo del contenedor de las 3 líneas"
|
506 |
-
|
507 |
-
#: app/views/admin/page.phtml:985
|
508 |
-
#, fuzzy
|
509 |
-
msgid "Click Button Background Transparent"
|
510 |
-
msgstr "Fondo del Menú Transparente"
|
511 |
|
512 |
-
#:
|
513 |
-
|
514 |
-
|
515 |
-
"Tick this if you would like a transparent background on the click button"
|
516 |
-
msgstr "+Marque esta opción si desea un fondo transparente"
|
517 |
|
518 |
-
#:
|
519 |
-
|
520 |
-
|
521 |
-
msgstr "Titulo del menú"
|
522 |
|
523 |
-
#:
|
524 |
-
msgid "
|
525 |
-
msgstr "
|
526 |
|
527 |
-
#:
|
528 |
-
msgid "
|
529 |
-
msgstr "
|
530 |
|
531 |
-
#:
|
532 |
-
msgid "
|
533 |
-
msgstr "
|
534 |
|
535 |
-
#:
|
536 |
-
|
537 |
-
|
|
|
538 |
|
539 |
-
#:
|
540 |
-
msgid "
|
541 |
-
msgstr "
|
542 |
|
543 |
-
#:
|
544 |
-
|
545 |
-
|
546 |
-
msgstr "Color del Borde del Enlace del Menú"
|
547 |
|
548 |
-
#:
|
549 |
-
msgid "
|
550 |
-
msgstr "
|
551 |
|
552 |
-
#:
|
553 |
-
|
554 |
-
|
555 |
-
msgstr "Este es el color de fondo del título del menú"
|
556 |
|
557 |
-
#:
|
558 |
-
|
559 |
-
|
560 |
-
msgstr "Este es el color de fondo de la página actual"
|
561 |
|
562 |
-
#:
|
563 |
-
|
564 |
-
msgid "
|
565 |
-
msgstr "
|
566 |
|
567 |
-
#:
|
568 |
-
msgid "
|
569 |
msgstr ""
|
570 |
|
571 |
-
#:
|
572 |
-
msgid "
|
573 |
msgstr ""
|
574 |
|
575 |
-
#:
|
576 |
-
|
577 |
-
|
578 |
-
msgstr "Colores del Texto"
|
579 |
|
580 |
-
#:
|
581 |
-
msgid "
|
582 |
-
msgstr "
|
583 |
|
584 |
-
#:
|
585 |
-
|
586 |
-
|
587 |
-
msgstr "Este es el color del texto del título del menú"
|
588 |
|
589 |
-
#:
|
590 |
-
msgid "
|
591 |
-
msgstr "
|
592 |
|
593 |
-
#:
|
594 |
-
|
595 |
-
|
596 |
-
msgstr "Color del Over del Título del Menú"
|
597 |
|
598 |
-
#:
|
599 |
-
|
600 |
-
|
601 |
-
msgstr "Color del Borde del Enlace del Menú"
|
602 |
|
603 |
-
#:
|
604 |
-
|
605 |
-
|
606 |
-
msgstr "Este es el color del texto de los enlaces del menú"
|
607 |
|
608 |
-
#:
|
609 |
-
|
610 |
-
|
611 |
-
msgstr "Color del Borde del Enlace del Menú"
|
612 |
|
613 |
-
#:
|
614 |
-
|
615 |
-
|
616 |
-
msgstr "Este es el color del over del texto de los enlaces del menú"
|
617 |
|
618 |
-
#:
|
619 |
-
|
620 |
-
|
621 |
-
msgstr "Color de Fondo de la Página Actual"
|
622 |
|
623 |
-
#:
|
624 |
-
|
625 |
-
|
626 |
-
msgstr "Color de Texto de la Página Actual"
|
627 |
|
628 |
-
#:
|
629 |
-
msgid "
|
630 |
msgstr ""
|
631 |
|
632 |
-
#:
|
633 |
-
msgid "
|
634 |
msgstr ""
|
635 |
|
636 |
-
#:
|
637 |
-
msgid "
|
638 |
-
msgstr "
|
639 |
|
640 |
-
#:
|
641 |
-
msgid "
|
642 |
-
msgstr "
|
643 |
|
644 |
-
#:
|
645 |
-
msgid "
|
646 |
msgstr ""
|
647 |
-
"Introduzca un nombre de tipo de letra, si está vacío se utilizará el tipo de "
|
648 |
-
"letra predeterminada del sitio"
|
649 |
|
650 |
-
#:
|
651 |
-
msgid "
|
652 |
-
msgstr "
|
653 |
|
654 |
-
#:
|
655 |
-
msgid "
|
656 |
-
msgstr "
|
657 |
|
658 |
-
#:
|
659 |
-
|
660 |
-
|
661 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
662 |
-
msgid "default"
|
663 |
-
msgstr "por defecto"
|
664 |
|
665 |
-
#:
|
666 |
-
msgid "
|
667 |
-
msgstr "
|
668 |
|
669 |
-
#:
|
670 |
-
msgid "
|
671 |
-
msgstr "
|
672 |
|
673 |
-
#:
|
674 |
-
msgid "
|
675 |
-
msgstr "
|
676 |
|
677 |
-
#:
|
678 |
-
msgid "
|
679 |
-
msgstr "
|
680 |
|
681 |
-
#:
|
682 |
-
msgid "
|
683 |
-
msgstr "
|
684 |
|
685 |
-
#:
|
686 |
-
msgid "
|
687 |
-
msgstr "
|
688 |
|
689 |
-
#:
|
690 |
-
msgid "
|
691 |
-
msgstr "
|
692 |
|
693 |
-
#:
|
694 |
-
msgid "
|
695 |
-
msgstr "
|
696 |
|
697 |
-
#:
|
698 |
-
msgid "
|
699 |
-
msgstr "
|
700 |
|
701 |
-
#:
|
702 |
-
msgid ""
|
703 |
-
"Setting the below two values to the same number will give you a fixed width "
|
704 |
-
"effect"
|
705 |
msgstr ""
|
706 |
|
707 |
-
#:
|
708 |
-
msgid "
|
709 |
-
msgstr "
|
710 |
|
711 |
-
#:
|
712 |
-
msgid "
|
713 |
-
msgstr "
|
714 |
|
715 |
-
#:
|
716 |
-
|
717 |
-
|
718 |
-
msgstr "Ancho maximo del Menú"
|
719 |
|
720 |
-
#:
|
721 |
-
|
722 |
-
|
723 |
-
msgstr "Entre un tamaño de ancho maximo de menú en píxeles debajo"
|
724 |
|
725 |
-
#:
|
726 |
-
msgid "
|
727 |
-
msgstr "
|
728 |
|
729 |
-
#:
|
730 |
-
msgid "
|
731 |
-
msgstr "
|
732 |
|
733 |
-
#:
|
734 |
-
msgid "
|
735 |
-
msgstr "
|
736 |
|
737 |
-
#:
|
738 |
-
msgid "
|
739 |
-
msgstr "
|
740 |
|
741 |
-
#:
|
742 |
-
msgid "
|
743 |
-
msgstr "
|
744 |
|
745 |
-
#:
|
746 |
-
msgid "
|
747 |
-
msgstr "
|
748 |
|
749 |
-
#:
|
750 |
msgid ""
|
751 |
-
"
|
|
|
|
|
752 |
msgstr ""
|
753 |
-
"Este es el CSS de la envoltura que desea empujar cuando se usa la animación "
|
754 |
-
"de empuje"
|
755 |
|
756 |
-
#:
|
757 |
-
msgid "Animation
|
758 |
-
msgstr "Velocidad de la Animación"
|
759 |
-
|
760 |
-
#: app/views/admin/page.phtml:1417
|
761 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
762 |
msgstr ""
|
763 |
-
"Introduzca la velocidad en cuestión en segundos debajo de la animación de "
|
764 |
-
"diapositiva"
|
765 |
|
766 |
-
#:
|
767 |
-
msgid "
|
768 |
-
msgstr "
|
769 |
|
770 |
-
#:
|
771 |
msgid "Transition Speed"
|
772 |
-
msgstr "Velocidad de Transición"
|
773 |
-
|
774 |
-
#: app/views/admin/page.phtml:1431
|
775 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
776 |
-
msgstr "Introduzca la velocidad en segundos debajo del efecto de transición"
|
777 |
-
|
778 |
-
#: app/views/admin/page.phtml:1445
|
779 |
-
#, fuzzy
|
780 |
-
msgid "Accordion Animation For Sub-Menus"
|
781 |
-
msgstr "Sub-Menús de Auto Expansión"
|
782 |
-
|
783 |
-
#: app/views/admin/page.phtml:1447
|
784 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#:
|
788 |
-
msgid "
|
789 |
msgstr ""
|
790 |
|
791 |
-
#:
|
792 |
-
msgid "
|
793 |
msgstr ""
|
794 |
|
795 |
-
#:
|
796 |
-
|
797 |
-
msgid "Additional HTML Content Settings"
|
798 |
-
msgstr "Configuraciones de la Animación"
|
799 |
-
|
800 |
-
#: app/views/admin/page.phtml:1487
|
801 |
-
msgid "Additional HTML Content"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#:
|
805 |
-
msgid ""
|
806 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
807 |
-
"banners etc. (accepts shortcodes)"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#:
|
811 |
-
msgid "
|
812 |
msgstr ""
|
813 |
|
814 |
-
#:
|
815 |
-
|
816 |
-
msgid "Select where you would like the additional HTML content to appear"
|
817 |
-
msgstr "Marque si desea remover el campo de búsqueda"
|
818 |
-
|
819 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
820 |
-
#, fuzzy
|
821 |
-
msgid "Above Menu Links"
|
822 |
-
msgstr "Este es el color del texto de los enlaces del menú"
|
823 |
-
|
824 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
825 |
-
#, fuzzy
|
826 |
-
msgid "Below Menu Links"
|
827 |
-
msgstr "Este es el color del texto de los enlaces del menú"
|
828 |
-
|
829 |
-
#: app/views/admin/page.phtml:1523
|
830 |
-
msgid "Menu Advanced Settings"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#:
|
834 |
-
msgid "
|
835 |
-
msgstr "Punto de Ruptura del Menú "
|
836 |
-
|
837 |
-
#: app/views/admin/page.phtml:1531
|
838 |
-
msgid ""
|
839 |
-
"This is the point where the responsive menu will be visible in px width of "
|
840 |
-
"the browser"
|
841 |
msgstr ""
|
842 |
-
"Este es el punto donde el menú flexible será visible en ancho en px del "
|
843 |
-
"navegador"
|
844 |
-
|
845 |
-
#: app/views/admin/page.phtml:1543
|
846 |
-
msgid "CSS of Menu To Hide"
|
847 |
-
msgstr "CSS del Menú A Esconder"
|
848 |
|
849 |
-
#:
|
850 |
-
msgid ""
|
851 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
852 |
msgstr ""
|
853 |
-
"Este es el CSS del menú que desea esconder una vez que el menú flexible se "
|
854 |
-
"muestra"
|
855 |
|
856 |
-
#:
|
857 |
-
msgid "
|
858 |
-
msgstr "Profundidad del Menú"
|
859 |
-
|
860 |
-
#: app/views/admin/page.phtml:1561
|
861 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
862 |
-
msgstr "Esto es cuán profundo en su árbol del menú será visible (max"
|
863 |
-
|
864 |
-
#: app/views/admin/page.phtml:1580
|
865 |
-
msgid "Menu Width"
|
866 |
-
msgstr "Ancho del Menú"
|
867 |
-
|
868 |
-
#: app/views/admin/page.phtml:1582
|
869 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
870 |
msgstr ""
|
871 |
-
"Esto es el ancho que el menú coje a lo largo de la página una vez expandido"
|
872 |
-
|
873 |
-
#: app/views/admin/page.phtml:1603
|
874 |
-
msgid "Remove Search Box"
|
875 |
-
msgstr "Remover el Campo de Búsqueda"
|
876 |
-
|
877 |
-
#: app/views/admin/page.phtml:1605
|
878 |
-
msgid "Tick if you would like to remove the search box"
|
879 |
-
msgstr "Marque si desea remover el campo de búsqueda"
|
880 |
-
|
881 |
-
#: app/views/admin/page.phtml:1618
|
882 |
-
#, fuzzy
|
883 |
-
msgid "Search Box Positioning"
|
884 |
-
msgstr "Remover el Campo de Búsqueda"
|
885 |
|
886 |
-
#:
|
887 |
-
|
888 |
-
msgid "Select where you would like the search box to appear"
|
889 |
-
msgstr "Marque si desea remover el campo de búsqueda"
|
890 |
-
|
891 |
-
#: app/views/admin/page.phtml:1642
|
892 |
-
#, fuzzy
|
893 |
-
msgid "Click to Close Menu on Link Click"
|
894 |
-
msgstr "Cerrar menú con un clic de enlace"
|
895 |
-
|
896 |
-
#: app/views/admin/page.phtml:1644
|
897 |
-
msgid ""
|
898 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
899 |
-
"single page sites"
|
900 |
msgstr ""
|
901 |
-
"Marque si desea cerrar el menú en cada enlace haciendo click, útil para los "
|
902 |
-
"sitios de una sola página"
|
903 |
-
|
904 |
-
#: app/views/admin/page.phtml:1657
|
905 |
-
#, fuzzy
|
906 |
-
msgid "Auto Expand Current Parent Items"
|
907 |
-
msgstr "Sub-Menús de Auto Expansión"
|
908 |
-
|
909 |
-
#: app/views/admin/page.phtml:1659
|
910 |
-
#, fuzzy
|
911 |
-
msgid ""
|
912 |
-
"Tick if you would like to make the current pages children expanded "
|
913 |
-
"automatically"
|
914 |
-
msgstr "Marque si quiere que los submenús se expandan automáticamente"
|
915 |
|
916 |
-
#:
|
917 |
-
msgid "
|
918 |
-
msgstr "Sub-Menús de Auto Expansión"
|
919 |
-
|
920 |
-
#: app/views/admin/page.phtml:1675
|
921 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
922 |
-
msgstr "Marque si quiere que los submenús se expandan automáticamente"
|
923 |
-
|
924 |
-
#: app/views/admin/page.phtml:1688
|
925 |
-
msgid "Ignore Parent Clicks"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#:
|
929 |
-
|
930 |
-
msgid "
|
931 |
-
msgstr "Marque si quiere incluir su script de jQuery en el pie de página"
|
932 |
-
|
933 |
-
#: app/views/admin/page.phtml:1704
|
934 |
-
#, fuzzy
|
935 |
-
msgid "Click to Close Menu on Page Click"
|
936 |
-
msgstr "Cerrar menú con un clic en la pagina"
|
937 |
-
|
938 |
-
#: app/views/admin/page.phtml:1706
|
939 |
-
#, fuzzy
|
940 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
941 |
msgstr ""
|
942 |
-
"Marque si desea cerrar el menú en cada enlace haciendo click en la pagina"
|
943 |
|
944 |
-
#:
|
945 |
-
msgid "
|
946 |
msgstr ""
|
947 |
|
948 |
-
#:
|
949 |
-
msgid "
|
950 |
-
msgstr "Minimizar salida"
|
951 |
-
|
952 |
-
#: app/views/admin/page.phtml:1735
|
953 |
-
msgid ""
|
954 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
955 |
-
"file size"
|
956 |
msgstr ""
|
957 |
-
"Marque si desea minimizar la salida del script/estilo. Salva hasta el 50% "
|
958 |
-
"del tamaño del archivo."
|
959 |
-
|
960 |
-
#: app/views/admin/page.phtml:1748
|
961 |
-
msgid "Include script in footer"
|
962 |
-
msgstr "Incluir script en el pie de página"
|
963 |
|
964 |
-
#:
|
965 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
966 |
-
msgstr "Marque si quiere incluir su script de jQuery en el pie de página"
|
967 |
-
|
968 |
-
#: app/views/admin/page.phtml:1764
|
969 |
-
msgid "Include CSS/JS as external files"
|
970 |
-
msgstr "Incluir CSS/JS como archivos externos"
|
971 |
-
|
972 |
-
#: app/views/admin/page.phtml:1766
|
973 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
974 |
-
msgstr "Marque si quiere incluir el CSS y el jQuery como archivos externos"
|
975 |
-
|
976 |
-
#: app/views/admin/page.phtml:1777
|
977 |
-
msgid "Remove CSS !important tags"
|
978 |
-
msgstr "Retire las etiquetas !important del CSS"
|
979 |
-
|
980 |
-
#: app/views/admin/page.phtml:1780
|
981 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
982 |
-
msgstr "Marque si desea remover las etiquetas !important del CSS"
|
983 |
-
|
984 |
-
#: app/views/admin/page.phtml:1781
|
985 |
msgid ""
|
986 |
-
"
|
987 |
-
"
|
988 |
msgstr ""
|
989 |
-
"Marcar esto hará más fácil sobrescribir los estilos pero puede hacer que las "
|
990 |
-
"configuraciones por defecto no se muestren bien"
|
991 |
|
992 |
-
#:
|
993 |
-
msgid "
|
994 |
msgstr ""
|
995 |
|
996 |
-
#:
|
997 |
-
msgid "
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#:
|
1001 |
-
msgid ""
|
1002 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
1003 |
-
"alone"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
-
#:
|
1007 |
-
|
1008 |
-
msgid "Import File"
|
1009 |
-
msgstr "No es posible crear el archivo de CSS"
|
1010 |
-
|
1011 |
-
#: app/views/admin/page.phtml:1840
|
1012 |
-
msgid "Import Options From XML"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#:
|
1016 |
-
msgid "
|
1017 |
msgstr ""
|
1018 |
|
1019 |
-
#:
|
1020 |
-
msgid ""
|
1021 |
-
"Please be warned this will reset all your current settings, please export "
|
1022 |
-
"your current files first"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#:
|
1026 |
-
msgid "
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#:
|
1030 |
-
msgid ""
|
1031 |
-
"This feature is only available in the pro version, please click below to "
|
1032 |
-
"upgrade"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#:
|
1036 |
-
msgid "
|
1037 |
-
msgstr ""
|
1038 |
-
|
1039 |
-
#~ msgid ""
|
1040 |
-
#~ "Highly Customisable Responsive Menu Plugin Created By ResponsiveMenu"
|
1041 |
-
#~ msgstr "Plugin Menú Flexible Muy Adaptable Creado Por ResponsiveMenu"
|
1042 |
-
|
1043 |
-
#~ msgid "Viewport Meta Tag Check"
|
1044 |
-
#~ msgstr "Comprobar Meta Etiqueta de Viewport "
|
1045 |
-
|
1046 |
-
#~ msgid "Below Viewport Meta Tag Found"
|
1047 |
-
#~ msgstr "Meta Etiqueta Debajo de Viewport Encontrada"
|
1048 |
-
|
1049 |
-
#~ msgid "Viewport Meta Tag Not Found"
|
1050 |
-
#~ msgstr "No se Encontró la Meta Etiqueta de Viewport "
|
1051 |
-
|
1052 |
-
#~ msgid ""
|
1053 |
-
#~ "This is the distance from the right of the page in % that the menu will "
|
1054 |
-
#~ "be displayed"
|
1055 |
-
#~ msgstr ""
|
1056 |
-
#~ "Esta es la distancia desde la derecha de la página en % en la que se "
|
1057 |
-
#~ "mostrará el menú"
|
1058 |
-
|
1059 |
-
#~ msgid ""
|
1060 |
-
#~ "Warning: The Push Animation requires you to place the following meta tag "
|
1061 |
-
#~ "in your site header"
|
1062 |
-
#~ msgstr ""
|
1063 |
-
#~ "Advertencia: La Animación de Empuje requiere que ponga la siguiente meta "
|
1064 |
-
#~ "etiqueta en el encabezado de su sitio"
|
1065 |
-
|
1066 |
-
#, fuzzy
|
1067 |
-
#~ msgid "Export Options"
|
1068 |
-
#~ msgstr "Se ha producido un error al actualizar las opciones del plugin"
|
1069 |
-
|
1070 |
-
#, fuzzy
|
1071 |
-
#~ msgid "Import Options"
|
1072 |
-
#~ msgstr "Se ha producido un error al actualizar las opciones del plugin"
|
1073 |
-
|
1074 |
-
#~ msgid "Menu Button Title"
|
1075 |
-
#~ msgstr "Título de Botón de Menú "
|
1076 |
|
1077 |
-
|
1078 |
-
|
|
|
1079 |
|
1080 |
-
|
1081 |
-
|
|
|
1082 |
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
#~ msgstr ""
|
1087 |
-
#~ "Este el boton de la imagen del clic que remplaza a las 3 líneas. Si se "
|
1088 |
-
#~ "deja vacío, las 3 líneas serán usadas"
|
1089 |
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
#~ "empty, the 3 lines will be used"
|
1098 |
-
#~ msgstr ""
|
1099 |
-
#~ "Este el boton de la imagen del clic que remplaza a las 3 líneas. Si se "
|
1100 |
-
#~ "deja vacío, las 3 líneas serán usadas"
|
1101 |
|
1102 |
-
|
1103 |
-
|
|
|
1104 |
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
#~ msgstr ""
|
1109 |
-
#~ "Esta es la distancia desde la parte superior de la página en px en la que "
|
1110 |
-
#~ "se mostrará el menú"
|
1111 |
|
1112 |
-
|
1113 |
-
|
|
|
1114 |
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
#~ msgstr ""
|
1119 |
-
#~ "Marque esta opción si desea que el botón del menú permanezca en el mismo "
|
1120 |
-
#~ "lugar cuando se desplaza"
|
1121 |
|
1122 |
-
|
1123 |
-
|
|
|
1124 |
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
#~ msgid "Initial Checks"
|
1137 |
-
#~ msgstr "Comprobaciones Iniciales"
|
1138 |
-
|
1139 |
-
#~ msgid ""
|
1140 |
-
#~ "Your Responsive Menu Options and CSS/JS files have been updated "
|
1141 |
-
#~ "successfully"
|
1142 |
-
#~ msgstr ""
|
1143 |
-
#~ "Sus Opciones de Menú Flexible y archivos CSS/JS se han actualizado "
|
1144 |
-
#~ "correctamente"
|
1145 |
-
|
1146 |
-
#~ msgid "Your Responsive Menu Options have been updated"
|
1147 |
-
#~ msgstr "Sus Opciones del Menú Flexible han sido actualizadas"
|
1148 |
-
|
1149 |
-
#~ msgid "There was an error updating the plugin options"
|
1150 |
-
#~ msgstr "Se ha producido un error al actualizar las opciones del plugin"
|
1151 |
-
|
1152 |
-
#~ msgid "left"
|
1153 |
-
#~ msgstr "izquierda"
|
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"
|
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 |
+
#: 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 |
|
59 |
+
#: src/app/Form/Export.php:10
|
60 |
+
msgid "Export Options"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: src/app/Form/FontIconPageList.php:17
|
64 |
+
msgid "Id"
|
65 |
+
msgstr ""
|
|
|
66 |
|
67 |
+
#: src/app/Form/FontIconPageList.php:17
|
68 |
+
msgid "Icon"
|
69 |
+
msgstr ""
|
70 |
|
71 |
+
#: src/app/Form/FontIconPageList.php:59
|
72 |
+
msgid "Add New Font Icon"
|
|
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: src/app/Form/Import.php:11
|
76 |
+
msgid "Import Options"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: src/app/Form/Reset.php:10
|
80 |
+
msgid "Reset Options"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: src/app/ViewModels/Components/Admin/Boxes.php:25
|
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 ""
|
94 |
|
95 |
+
#: src/config/admin_ordering.php:17 src/config/admin_ordering.php:47
|
96 |
+
#: src/config/admin_ordering.php:812
|
97 |
+
msgid "Menu"
|
98 |
+
msgstr ""
|
99 |
|
100 |
+
#: src/config/admin_ordering.php:21 src/config/admin_ordering.php:893
|
101 |
+
msgid "Breakpoint"
|
102 |
+
msgstr ""
|
|
|
|
|
103 |
|
104 |
+
#: src/config/admin_ordering.php:22
|
105 |
msgid ""
|
106 |
+
"This is the width of the screen at which point you would like the menu to "
|
107 |
+
"start showing"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: src/config/admin_ordering.php:27
|
111 |
+
msgid "Menu to Use"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: src/config/admin_ordering.php:34
|
115 |
+
msgid "CSS of Menu to Hide"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: src/config/admin_ordering.php:48
|
119 |
+
msgid "Section Ordering"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: src/config/admin_ordering.php:51
|
123 |
+
msgid "Order of Menu Items"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: src/config/admin_ordering.php:52
|
127 |
+
msgid "Drag the items to re-order and click to turn them on/off"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: src/config/admin_ordering.php:56 src/config/admin_ordering.php:60
|
131 |
+
msgid "Font Icons"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: src/config/admin_ordering.php:61
|
135 |
+
msgid ""
|
136 |
+
"Responsive Menu uses the brilliant <a href=\"http://fontawesome.io/icons/\" "
|
137 |
+
"target=\"_blank\">Awesome Font Icons</a> for implementing icons in your menu "
|
138 |
+
"- for more info please visit our doc pages at <a href=\"https://responsive."
|
139 |
+
"menu/docs/basic-setup/font-icons/\" target=\"_blank\">https://responsive."
|
140 |
+
"menu/docs/basic-setup/font-icons/</a>"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: src/config/admin_ordering.php:66 src/config/admin_ordering.php:730
|
144 |
+
#: src/config/admin_ordering.php:954
|
145 |
+
msgid "Sizing"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: src/config/admin_ordering.php:70
|
149 |
+
msgid "Menu Width"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: src/config/admin_ordering.php:76
|
153 |
+
msgid "Maximum Width"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: src/config/admin_ordering.php:82
|
157 |
+
msgid "Minimum Width"
|
|
|
|
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: src/config/admin_ordering.php:88
|
161 |
+
msgid "Links Height"
|
162 |
+
msgstr ""
|
|
|
|
|
163 |
|
164 |
+
#: src/config/admin_ordering.php:94
|
165 |
+
msgid "Menu Auto Height"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: src/config/admin_ordering.php:100 src/config/admin_ordering.php:564
|
169 |
+
#: src/config/admin_ordering.php:922 src/config/admin_ordering.php:925
|
170 |
+
msgid "Title"
|
171 |
msgstr ""
|
|
|
172 |
|
173 |
+
#: src/config/admin_ordering.php:104 src/config/admin_ordering.php:176
|
174 |
+
#: src/config/admin_ordering.php:567 src/config/admin_ordering.php:939
|
175 |
+
msgid "Text"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: src/config/admin_ordering.php:109 src/config/admin_ordering.php:917
|
179 |
+
msgid "Link"
|
|
|
|
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: src/config/admin_ordering.php:114
|
183 |
+
msgid "Link Location"
|
184 |
+
msgstr ""
|
185 |
|
186 |
+
#: src/config/admin_ordering.php:126
|
187 |
+
msgid "Title Font Size"
|
|
|
|
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: src/config/admin_ordering.php:132 src/config/admin_ordering.php:611
|
191 |
+
msgid "Font Icon"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: src/config/admin_ordering.php:138 src/config/admin_ordering.php:607
|
195 |
+
#: src/config/admin_ordering.php:623 src/config/admin_ordering.php:910
|
196 |
+
msgid "Image"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: src/config/admin_ordering.php:144
|
200 |
+
msgid "Title Background Colour"
|
201 |
+
msgstr ""
|
|
|
202 |
|
203 |
+
#: src/config/admin_ordering.php:151
|
204 |
+
msgid "Title Background Colour Hover"
|
205 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
+
#: src/config/admin_ordering.php:158
|
208 |
+
msgid "Title Colour"
|
209 |
+
msgstr ""
|
|
|
210 |
|
211 |
+
#: src/config/admin_ordering.php:165
|
212 |
+
msgid "Title Hover Colour"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: src/config/admin_ordering.php:172
|
216 |
+
msgid "Additional Content"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: src/config/admin_ordering.php:177
|
220 |
+
msgid "HTMl and Shortcodes can be used"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: src/config/admin_ordering.php:182 src/config/admin_ordering.php:572
|
224 |
+
msgid "Colour"
|
225 |
+
msgstr ""
|
226 |
|
227 |
+
#: src/config/admin_ordering.php:187 src/config/admin_ordering.php:415
|
228 |
+
msgid "Animation"
|
|
|
|
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: src/config/admin_ordering.php:191
|
232 |
+
msgid "Appear From"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: src/config/admin_ordering.php:203 src/config/admin_ordering.php:419
|
236 |
+
msgid "Animation Type"
|
|
|
|
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: src/config/admin_ordering.php:215
|
240 |
+
msgid "Page Wrapper CSS selector"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: src/config/admin_ordering.php:216
|
244 |
+
msgid "This is only needed if you are using the push animation above"
|
|
|
|
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: src/config/admin_ordering.php:220
|
248 |
+
msgid "Close Menu on Body Clicks"
|
249 |
+
msgstr ""
|
250 |
|
251 |
+
#: src/config/admin_ordering.php:226
|
252 |
+
msgid "Close Menu on Link Clicks"
|
253 |
+
msgstr ""
|
254 |
|
255 |
+
#: src/config/admin_ordering.php:231
|
256 |
+
msgid "Search Box"
|
257 |
+
msgstr ""
|
258 |
|
259 |
+
#: src/config/admin_ordering.php:235
|
260 |
+
msgid "Menu Search Box Text"
|
|
|
|
|
261 |
msgstr ""
|
|
|
|
|
262 |
|
263 |
+
#: src/config/admin_ordering.php:241 src/config/admin_ordering.php:533
|
264 |
+
msgid "Background Colours"
|
265 |
+
msgstr ""
|
266 |
|
267 |
+
#: src/config/admin_ordering.php:245 src/config/admin_ordering.php:536
|
268 |
+
#: src/config/admin_ordering.php:655 src/config/admin_ordering.php:966
|
269 |
+
#: src/config/admin_ordering.php:999 src/config/admin_ordering.php:1029
|
270 |
+
msgid "Background Colour"
|
271 |
+
msgstr ""
|
272 |
|
273 |
+
#: src/config/admin_ordering.php:252
|
274 |
+
msgid "Item Background Colour"
|
275 |
+
msgstr ""
|
276 |
|
277 |
+
#: src/config/admin_ordering.php:259
|
278 |
+
msgid "Item Background Colour Hover"
|
279 |
+
msgstr ""
|
280 |
|
281 |
+
#: src/config/admin_ordering.php:266
|
282 |
+
msgid "Item Border Colour"
|
283 |
+
msgstr ""
|
284 |
|
285 |
+
#: src/config/admin_ordering.php:273
|
286 |
+
msgid "Item Border Colour Hover"
|
287 |
+
msgstr ""
|
|
|
288 |
|
289 |
+
#: src/config/admin_ordering.php:280
|
290 |
+
msgid "Current Item Background Colour"
|
291 |
+
msgstr ""
|
292 |
|
293 |
+
#: src/config/admin_ordering.php:287
|
294 |
+
msgid "Current Item Background Colour Hover"
|
295 |
msgstr ""
|
296 |
|
297 |
+
#: src/config/admin_ordering.php:293
|
298 |
+
msgid "Text Colours"
|
299 |
msgstr ""
|
300 |
|
301 |
+
#: src/config/admin_ordering.php:298
|
302 |
+
msgid "Link Colour"
|
|
|
|
|
|
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: src/config/admin_ordering.php:305
|
306 |
+
msgid "Link Hover Colour"
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: src/config/admin_ordering.php:312
|
310 |
+
msgid "Current Link Colour"
|
311 |
msgstr ""
|
312 |
|
313 |
+
#: src/config/admin_ordering.php:319
|
314 |
+
msgid "Current Link Hover Colour"
|
315 |
+
msgstr ""
|
|
|
316 |
|
317 |
+
#: src/config/admin_ordering.php:326
|
318 |
+
msgid "Text Styling"
|
319 |
+
msgstr ""
|
|
|
320 |
|
321 |
+
#: src/config/admin_ordering.php:330 src/config/admin_ordering.php:591
|
322 |
+
#: src/config/admin_ordering.php:942 src/config/admin_ordering.php:1059
|
323 |
+
#: src/config/admin_ordering.php:1074
|
324 |
+
msgid "Font"
|
325 |
+
msgstr ""
|
326 |
|
327 |
+
#: src/config/admin_ordering.php:335 src/config/admin_ordering.php:596
|
328 |
+
#: src/config/admin_ordering.php:948 src/config/admin_ordering.php:1065
|
329 |
+
#: src/config/admin_ordering.php:1080
|
330 |
+
msgid "Font Size"
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: src/config/admin_ordering.php:341
|
334 |
+
msgid "Text Alignment"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: src/config/admin_ordering.php:353
|
338 |
+
msgid "Word Wrap"
|
339 |
+
msgstr ""
|
|
|
340 |
|
341 |
+
#: src/config/admin_ordering.php:359
|
342 |
+
msgid "Page Overlay"
|
343 |
+
msgstr ""
|
|
|
344 |
|
345 |
+
#: src/config/admin_ordering.php:363
|
346 |
+
msgid "Add Page Overlay When Menu Open"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: src/config/admin_ordering.php:370
|
350 |
+
msgid "Overlay Colour"
|
351 |
+
msgstr ""
|
|
|
352 |
|
353 |
+
#: src/config/admin_ordering.php:376 src/config/admin_ordering.php:634
|
354 |
+
msgid "Advanced"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: src/config/admin_ordering.php:380
|
358 |
+
msgid "Depth"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: src/config/admin_ordering.php:393
|
362 |
+
msgid "Disable Scrolling when Menu Active"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: src/config/admin_ordering.php:400
|
366 |
+
msgid "Theme Location Menu"
|
367 |
+
msgstr ""
|
|
|
368 |
|
369 |
+
#: src/config/admin_ordering.php:414
|
370 |
+
msgid "Button"
|
371 |
+
msgstr ""
|
|
|
372 |
|
373 |
+
#: src/config/admin_ordering.php:420
|
374 |
msgid ""
|
375 |
+
"To see all animations in action please visit <a href=\"https://jonsuh.com/"
|
376 |
+
"hamburgers/\" target=\"_blank\">this page</a>"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: src/config/admin_ordering.php:455 src/config/admin_ordering.php:881
|
380 |
+
msgid "Position Type"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: src/config/admin_ordering.php:466
|
384 |
+
msgid "Push Button with Animation"
|
385 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
|
387 |
+
#: src/config/admin_ordering.php:471
|
388 |
+
msgid "Location"
|
389 |
+
msgstr ""
|
|
|
|
|
390 |
|
391 |
+
#: src/config/admin_ordering.php:475
|
392 |
+
msgid "Distance from Side"
|
393 |
+
msgstr ""
|
|
|
394 |
|
395 |
+
#: src/config/admin_ordering.php:481
|
396 |
+
msgid "Button Side"
|
397 |
+
msgstr ""
|
398 |
|
399 |
+
#: src/config/admin_ordering.php:491
|
400 |
+
msgid "Distance from Top"
|
401 |
+
msgstr ""
|
402 |
|
403 |
+
#: src/config/admin_ordering.php:496
|
404 |
+
msgid "Container Sizing"
|
405 |
+
msgstr ""
|
406 |
|
407 |
+
#: src/config/admin_ordering.php:500 src/config/admin_ordering.php:957
|
408 |
+
#: src/config/admin_ordering.php:1089 src/config/admin_ordering.php:1098
|
409 |
+
msgid "Height"
|
410 |
+
msgstr ""
|
411 |
|
412 |
+
#: src/config/admin_ordering.php:506
|
413 |
+
msgid "Width"
|
414 |
+
msgstr ""
|
415 |
|
416 |
+
#: src/config/admin_ordering.php:511
|
417 |
+
msgid "Hamburger Sizing"
|
418 |
+
msgstr ""
|
|
|
419 |
|
420 |
+
#: src/config/admin_ordering.php:515 src/config/admin_ordering.php:602
|
421 |
+
msgid "Line Height"
|
422 |
+
msgstr ""
|
423 |
|
424 |
+
#: src/config/admin_ordering.php:521
|
425 |
+
msgid "Line Margin"
|
426 |
+
msgstr ""
|
|
|
427 |
|
428 |
+
#: src/config/admin_ordering.php:527
|
429 |
+
msgid "Line Width"
|
430 |
+
msgstr ""
|
|
|
431 |
|
432 |
+
#: src/config/admin_ordering.php:543 src/config/admin_ordering.php:662
|
433 |
+
#: src/config/admin_ordering.php:1006 src/config/admin_ordering.php:1036
|
434 |
+
msgid "Background Hover Colour"
|
435 |
+
msgstr ""
|
436 |
|
437 |
+
#: src/config/admin_ordering.php:550
|
438 |
+
msgid "Transparent Background"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: src/config/admin_ordering.php:555
|
442 |
+
msgid "Line Colours"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: src/config/admin_ordering.php:558
|
446 |
+
msgid "Line Colour"
|
447 |
+
msgstr ""
|
|
|
448 |
|
449 |
+
#: src/config/admin_ordering.php:579
|
450 |
+
msgid "Title Text Position"
|
451 |
+
msgstr ""
|
452 |
|
453 |
+
#: src/config/admin_ordering.php:617
|
454 |
+
msgid "Font Icon When Clicked"
|
455 |
+
msgstr ""
|
|
|
456 |
|
457 |
+
#: src/config/admin_ordering.php:629
|
458 |
+
msgid "Image When Clicked"
|
459 |
+
msgstr ""
|
460 |
|
461 |
+
#: src/config/admin_ordering.php:638
|
462 |
+
msgid "Trigger"
|
463 |
+
msgstr ""
|
|
|
464 |
|
465 |
+
#: src/config/admin_ordering.php:649
|
466 |
+
msgid "Sub-Menus"
|
467 |
+
msgstr ""
|
|
|
468 |
|
469 |
+
#: src/config/admin_ordering.php:651
|
470 |
+
msgid "Toggle Button Colours"
|
471 |
+
msgstr ""
|
|
|
472 |
|
473 |
+
#: src/config/admin_ordering.php:669
|
474 |
+
msgid "Border Colour"
|
475 |
+
msgstr ""
|
|
|
476 |
|
477 |
+
#: src/config/admin_ordering.php:676
|
478 |
+
msgid "Border Hover Colour"
|
479 |
+
msgstr ""
|
|
|
480 |
|
481 |
+
#: src/config/admin_ordering.php:682
|
482 |
+
msgid "Toggle Icon Colours"
|
483 |
+
msgstr ""
|
|
|
484 |
|
485 |
+
#: src/config/admin_ordering.php:686
|
486 |
+
msgid "Icon Colour"
|
487 |
+
msgstr ""
|
|
|
488 |
|
489 |
+
#: src/config/admin_ordering.php:693
|
490 |
+
msgid "Icon Hover Colour"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: src/config/admin_ordering.php:699
|
494 |
+
msgid "Animations"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: src/config/admin_ordering.php:703
|
498 |
+
msgid "Use Accordion Animation"
|
499 |
+
msgstr ""
|
500 |
|
501 |
+
#: src/config/admin_ordering.php:709
|
502 |
+
msgid "Auto Expand All Submenus"
|
503 |
+
msgstr ""
|
504 |
|
505 |
+
#: src/config/admin_ordering.php:715
|
506 |
+
msgid "Auto Expand Current Submenus"
|
507 |
msgstr ""
|
|
|
|
|
508 |
|
509 |
+
#: src/config/admin_ordering.php:721
|
510 |
+
msgid "Disable Parent Item Clicks"
|
511 |
+
msgstr ""
|
512 |
|
513 |
+
#: src/config/admin_ordering.php:734
|
514 |
+
msgid "Toggle Button Height"
|
515 |
+
msgstr ""
|
516 |
|
517 |
+
#: src/config/admin_ordering.php:740
|
518 |
+
msgid "Toggle Button Width"
|
519 |
+
msgstr ""
|
|
|
|
|
|
|
520 |
|
521 |
+
#: src/config/admin_ordering.php:746
|
522 |
+
msgid "Toggle Icons"
|
523 |
+
msgstr ""
|
524 |
|
525 |
+
#: src/config/admin_ordering.php:750
|
526 |
+
msgid "Font Icon Active"
|
527 |
+
msgstr ""
|
528 |
|
529 |
+
#: src/config/admin_ordering.php:756
|
530 |
+
msgid "Font Icon Inactive"
|
531 |
+
msgstr ""
|
532 |
|
533 |
+
#: src/config/admin_ordering.php:762
|
534 |
+
msgid "HTML Shape Active"
|
535 |
+
msgstr ""
|
536 |
|
537 |
+
#: src/config/admin_ordering.php:767
|
538 |
+
msgid "HTML Shape Inactive"
|
539 |
+
msgstr ""
|
540 |
|
541 |
+
#: src/config/admin_ordering.php:772
|
542 |
+
msgid "Image Active"
|
543 |
+
msgstr ""
|
544 |
|
545 |
+
#: src/config/admin_ordering.php:778
|
546 |
+
msgid "Image Inactive"
|
547 |
+
msgstr ""
|
548 |
|
549 |
+
#: src/config/admin_ordering.php:791
|
550 |
+
msgid "Technical"
|
551 |
+
msgstr ""
|
552 |
|
553 |
+
#: src/config/admin_ordering.php:792
|
554 |
+
msgid "Scripts"
|
555 |
+
msgstr ""
|
556 |
|
557 |
+
#: src/config/admin_ordering.php:795
|
558 |
+
msgid "Use External Files?"
|
|
|
|
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: src/config/admin_ordering.php:796
|
562 |
+
msgid "This will create external files for CSS and JavaScript"
|
563 |
+
msgstr ""
|
564 |
|
565 |
+
#: src/config/admin_ordering.php:801
|
566 |
+
msgid "Minify Scripts?"
|
567 |
+
msgstr ""
|
568 |
|
569 |
+
#: src/config/admin_ordering.php:802
|
570 |
+
msgid "This will minify CSS and JavaScript output"
|
571 |
+
msgstr ""
|
|
|
572 |
|
573 |
+
#: src/config/admin_ordering.php:807
|
574 |
+
msgid "Place Scripts In Footer?"
|
575 |
+
msgstr ""
|
|
|
576 |
|
577 |
+
#: src/config/admin_ordering.php:808
|
578 |
+
msgid "This will place the JavaScript file in the footer"
|
579 |
+
msgstr ""
|
580 |
|
581 |
+
#: src/config/admin_ordering.php:815
|
582 |
+
msgid "Custom Walker"
|
583 |
+
msgstr ""
|
584 |
|
585 |
+
#: src/config/admin_ordering.php:816
|
586 |
+
msgid "Warning: For extremely advanced use only"
|
587 |
+
msgstr ""
|
588 |
|
589 |
+
#: src/config/admin_ordering.php:820
|
590 |
+
msgid "Show on mobile devices only?"
|
591 |
+
msgstr ""
|
592 |
|
593 |
+
#: src/config/admin_ordering.php:821
|
594 |
+
msgid "This will make it not a responsive menu but a \"mobile menu\""
|
595 |
+
msgstr ""
|
596 |
|
597 |
+
#: src/config/admin_ordering.php:827
|
598 |
+
msgid "Use Shortcode?"
|
599 |
+
msgstr ""
|
600 |
|
601 |
+
#: src/config/admin_ordering.php:828
|
602 |
msgid ""
|
603 |
+
"Please place [responsive_menu] in your files to use. Full documentation can "
|
604 |
+
"be found <a target=\"_blank\" href=\"https://responsive.menu/docs/advanced-"
|
605 |
+
"setup/shortcode/\">here</a>"
|
606 |
msgstr ""
|
|
|
|
|
607 |
|
608 |
+
#: src/config/admin_ordering.php:832
|
609 |
+
msgid "Animation Speeds"
|
|
|
|
|
|
|
|
|
610 |
msgstr ""
|
|
|
|
|
611 |
|
612 |
+
#: src/config/admin_ordering.php:836
|
613 |
+
msgid "Animation Speed"
|
614 |
+
msgstr ""
|
615 |
|
616 |
+
#: src/config/admin_ordering.php:842
|
617 |
msgid "Transition Speed"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: src/config/admin_ordering.php:854 src/config/admin_ordering.php:858
|
621 |
+
msgid "Custom CSS"
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: src/config/admin_ordering.php:855
|
625 |
+
msgid "CSS"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: src/config/admin_ordering.php:870 src/views/admin/main.phtml:79
|
629 |
+
msgid "Header Bar"
|
|
|
|
|
|
|
|
|
|
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: src/config/admin_ordering.php:871 src/config/admin_ordering.php:987
|
633 |
+
msgid "Setup"
|
|
|
|
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: src/config/admin_ordering.php:874
|
637 |
+
msgid "Use Header Bar"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: src/config/admin_ordering.php:898 src/config/admin_ordering.php:901
|
641 |
+
msgid "Ordering"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: src/config/admin_ordering.php:907
|
645 |
+
msgid "Logo"
|
|
|
|
|
|
|
|
|
|
|
|
|
646 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
647 |
|
648 |
+
#: src/config/admin_ordering.php:930
|
649 |
+
msgid "Content"
|
|
|
650 |
msgstr ""
|
|
|
|
|
651 |
|
652 |
+
#: src/config/admin_ordering.php:933
|
653 |
+
msgid "HTML Content"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
|
656 |
+
#: src/config/admin_ordering.php:934
|
657 |
+
msgid "Accepts shortcodes"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
658 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
659 |
|
660 |
+
#: src/config/admin_ordering.php:963
|
661 |
+
msgid "Colours"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: src/config/admin_ordering.php:973 src/config/admin_ordering.php:1013
|
665 |
+
#: src/config/admin_ordering.php:1043
|
666 |
+
msgid "Text Colour"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
667 |
msgstr ""
|
|
|
668 |
|
669 |
+
#: src/config/admin_ordering.php:986
|
670 |
+
msgid "Single Menu"
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: src/config/admin_ordering.php:990
|
674 |
+
msgid "Use Single Menu"
|
|
|
|
|
|
|
|
|
|
|
|
|
675 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
676 |
|
677 |
+
#: src/config/admin_ordering.php:991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
msgid ""
|
679 |
+
"To use this option you must turn the Shortcode option on and use the "
|
680 |
+
"shortcode in your theme where you want the menu to appear"
|
681 |
msgstr ""
|
|
|
|
|
682 |
|
683 |
+
#: src/config/admin_ordering.php:996
|
684 |
+
msgid "Menu Colours"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: src/config/admin_ordering.php:1020 src/config/admin_ordering.php:1050
|
688 |
+
msgid "Text Hover Colour"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: src/config/admin_ordering.php:1026
|
692 |
+
msgid "Sub-Menu Colours"
|
|
|
|
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: src/config/admin_ordering.php:1056
|
696 |
+
msgid "Menu Styling"
|
|
|
|
|
|
|
|
|
|
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: src/config/admin_ordering.php:1071
|
700 |
+
msgid "Sub-Menu Styling"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: src/config/admin_ordering.php:1086
|
704 |
+
msgid "Menu Sizing"
|
|
|
|
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: src/config/admin_ordering.php:1095
|
708 |
+
msgid "Sub-Menu Sizing"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: src/config/admin_ordering.php:1106
|
712 |
+
msgid "Import/Export"
|
|
|
|
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: src/config/admin_ordering.php:1109
|
716 |
+
msgid "Import"
|
717 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
718 |
|
719 |
+
#: src/config/admin_ordering.php:1115
|
720 |
+
msgid "Export"
|
721 |
+
msgstr ""
|
722 |
|
723 |
+
#: src/config/admin_ordering.php:1121
|
724 |
+
msgid "Reset"
|
725 |
+
msgstr ""
|
726 |
|
727 |
+
#: src/views/admin/main.phtml:20 src/views/admin/main.phtml:34
|
728 |
+
msgid "Dismiss this notice"
|
729 |
+
msgstr ""
|
|
|
|
|
|
|
730 |
|
731 |
+
#: src/views/admin/main.phtml:67
|
732 |
+
msgid "Update Options"
|
733 |
+
msgstr ""
|
734 |
|
735 |
+
#: src/views/admin/main.phtml:73
|
736 |
+
msgid "Upgrade today to unlock the following features:"
|
737 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
738 |
|
739 |
+
#: src/views/admin/main.phtml:75
|
740 |
+
msgid "Font Awesome Icon Support"
|
741 |
+
msgstr ""
|
742 |
|
743 |
+
#: src/views/admin/main.phtml:76
|
744 |
+
msgid "Opacity Option for all Colours"
|
745 |
+
msgstr ""
|
|
|
|
|
|
|
746 |
|
747 |
+
#: src/views/admin/main.phtml:77
|
748 |
+
msgid "15+ Button Animations"
|
749 |
+
msgstr ""
|
750 |
|
751 |
+
#: src/views/admin/main.phtml:78
|
752 |
+
msgid "Style Desktop Menu Too"
|
753 |
+
msgstr ""
|
|
|
|
|
|
|
754 |
|
755 |
+
#: src/views/admin/main.phtml:80
|
756 |
+
msgid "And much more"
|
757 |
+
msgstr ""
|
758 |
|
759 |
+
#: src/views/admin/main.phtml:82
|
760 |
+
msgid "Upgrade Now"
|
761 |
+
msgstr ""
|
762 |
|
763 |
+
#: src/views/admin/main.phtml:85
|
764 |
+
msgid "Confused? Check out our documentation"
|
765 |
+
msgstr ""
|
766 |
|
767 |
+
#: src/views/admin/main.phtml:86
|
768 |
+
msgid "View Docs"
|
769 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
translations/responsive-menu-fr_FR.mo
DELETED
Binary file
|
translations/responsive-menu-fr_FR.po
DELETED
@@ -1,1093 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu WordPress\n"
|
4 |
-
"POT-Creation-Date: 2015-08-19 21:38+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-08-19 21:38+0100\n"
|
6 |
-
"Last-Translator: ResponsiveMenu <support@responsive.menu>\n"
|
7 |
-
"Language-Team: ResponsiveMenu <support@responsive.menu>\n"
|
8 |
-
"Language: fr_FR\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.4\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: app\n"
|
17 |
-
|
18 |
-
#: app/config.php:84 app/views/admin/page.phtml:658
|
19 |
-
msgid "Menu Title"
|
20 |
-
msgstr "Titre du menu"
|
21 |
-
|
22 |
-
#: app/controllers/AdminController.php:56
|
23 |
-
#: app/controllers/AdminController.php:57
|
24 |
-
msgid "Responsive Menu"
|
25 |
-
msgstr "Menu responsive"
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
msgid "Settings"
|
29 |
-
msgstr "Paramètres"
|
30 |
-
|
31 |
-
#: app/controllers/GlobalController.php:57
|
32 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: app/library/responsive-menu/Export.php:23
|
36 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
37 |
-
msgstr ""
|
38 |
-
"Si vous ne pouvez pas exporter un fishier, veuillez vérifier les droits des "
|
39 |
-
"dossiers du plugin. "
|
40 |
-
|
41 |
-
#: app/library/responsive-menu/Export.php:43
|
42 |
-
msgid "You can download your exported file by clicking here"
|
43 |
-
msgstr "Vous pouvez télécharger voter export en cliquant ici"
|
44 |
-
|
45 |
-
#: app/library/responsive-menu/Import.php:17
|
46 |
-
msgid "No Import File Attached"
|
47 |
-
msgstr "Aucun fishier importé attaché"
|
48 |
-
|
49 |
-
#: app/library/responsive-menu/Import.php:20
|
50 |
-
msgid "Incorrect Import File Format"
|
51 |
-
msgstr "Format d'import incorrect"
|
52 |
-
|
53 |
-
#: app/library/responsive-menu/Import.php:23
|
54 |
-
msgid "Import File Too Large"
|
55 |
-
msgstr "Fichier d'import trop lourd"
|
56 |
-
|
57 |
-
#: app/library/responsive-menu/Import.php:26
|
58 |
-
msgid "Import File Not Valid"
|
59 |
-
msgstr "Fichier d'import invalide"
|
60 |
-
|
61 |
-
#: app/library/responsive-menu/View.php:68
|
62 |
-
msgid "Search"
|
63 |
-
msgstr "Rechercher"
|
64 |
-
|
65 |
-
#: app/models/AdminModel.php:368
|
66 |
-
msgid "You have successfully updated the Responsive Menu options"
|
67 |
-
msgstr "Vous avez mis à jours les options de Responsive Menu avec succès."
|
68 |
-
|
69 |
-
#: app/models/CSSModel.php:24
|
70 |
-
msgid "Unable to create CSS file"
|
71 |
-
msgstr "Impossible de créer le fichier CSS"
|
72 |
-
|
73 |
-
#: app/models/FolderModel.php:26
|
74 |
-
msgid "Unable to create data folders"
|
75 |
-
msgstr "Impossible de créer les dossiers de données"
|
76 |
-
|
77 |
-
#: app/models/FolderModel.php:29
|
78 |
-
msgid "Unable to create CSS folders"
|
79 |
-
msgstr "Impossible de créer les dossiers CSS"
|
80 |
-
|
81 |
-
#: app/models/FolderModel.php:32
|
82 |
-
msgid "Unable to create JS folders"
|
83 |
-
msgstr "Impossible de créer les dossiers JS"
|
84 |
-
|
85 |
-
#: app/models/JSModel.php:24
|
86 |
-
msgid "Unable to create JS file"
|
87 |
-
msgstr "Impossible de créer le fichier JS"
|
88 |
-
|
89 |
-
#: app/views/admin/page.phtml:202
|
90 |
-
msgid "Version"
|
91 |
-
msgstr "Version"
|
92 |
-
|
93 |
-
#: app/views/admin/page.phtml:211 app/views/admin/page.phtml:1924
|
94 |
-
msgid "Update Responsive Menu Options"
|
95 |
-
msgstr "Sauvegarder les options de Responsive Menu"
|
96 |
-
|
97 |
-
#: app/views/admin/page.phtml:215
|
98 |
-
msgid "Responsive Menu Options"
|
99 |
-
msgstr "Options de Responsive Menu"
|
100 |
-
|
101 |
-
#: app/views/admin/page.phtml:215
|
102 |
-
msgid "Go Pro - Upgrade now"
|
103 |
-
msgstr ""
|
104 |
-
|
105 |
-
#: app/views/admin/page.phtml:234
|
106 |
-
msgid "Meta Tag Check"
|
107 |
-
msgstr "Vérifier le mega tag"
|
108 |
-
|
109 |
-
#: app/views/admin/page.phtml:239
|
110 |
-
msgid "Recommended Metaport Tag"
|
111 |
-
msgstr "Meta tag recommandé"
|
112 |
-
|
113 |
-
#: app/views/admin/page.phtml:251 app/views/admin/page.phtml:931
|
114 |
-
#: app/views/admin/page.phtml:1329 app/views/admin/page.phtml:1873
|
115 |
-
msgid "Note"
|
116 |
-
msgstr "Note"
|
117 |
-
|
118 |
-
#: app/views/admin/page.phtml:252
|
119 |
-
msgid "This is only a reference guide and yours may vary slightly"
|
120 |
-
msgstr ""
|
121 |
-
|
122 |
-
#: app/views/admin/page.phtml:258
|
123 |
-
msgid "Transient Caching"
|
124 |
-
msgstr ""
|
125 |
-
|
126 |
-
#: app/views/admin/page.phtml:265
|
127 |
-
msgid "Turn on transient caching"
|
128 |
-
msgstr ""
|
129 |
-
|
130 |
-
#: app/views/admin/page.phtml:268
|
131 |
-
#, php-format
|
132 |
-
msgid ""
|
133 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
134 |
-
"this will break active links etc."
|
135 |
-
msgstr ""
|
136 |
-
|
137 |
-
#: app/views/admin/page.phtml:283
|
138 |
-
msgid "Shortcode Support"
|
139 |
-
msgstr "Utilisation du shortcode"
|
140 |
-
|
141 |
-
#: app/views/admin/page.phtml:292
|
142 |
-
msgid "Click to use shortcode"
|
143 |
-
msgstr "Cliquer pour utiliser le shortcode"
|
144 |
-
|
145 |
-
#: app/views/admin/page.phtml:294
|
146 |
-
msgid ""
|
147 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
148 |
-
msgstr ""
|
149 |
-
"Cocher si vous souhaitez utiliser un shortcode plutôt que le comportement "
|
150 |
-
"par défaut"
|
151 |
-
|
152 |
-
#: app/views/admin/page.phtml:308
|
153 |
-
msgid ""
|
154 |
-
"For a list of available shortcode options with explanations please visit the "
|
155 |
-
"following page:"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: app/views/admin/page.phtml:311
|
159 |
-
msgid "Shortcode Options"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: app/views/admin/page.phtml:319
|
163 |
-
msgid "Available Shortcode Options/Values"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: app/views/admin/page.phtml:323 app/views/admin/page.phtml:351
|
167 |
-
msgid "Option"
|
168 |
-
msgstr ""
|
169 |
-
|
170 |
-
#: app/views/admin/page.phtml:324
|
171 |
-
msgid "Values"
|
172 |
-
msgstr ""
|
173 |
-
|
174 |
-
#: app/views/admin/page.phtml:346
|
175 |
-
msgid "Sorry, there are no available options"
|
176 |
-
msgstr ""
|
177 |
-
|
178 |
-
#: app/views/admin/page.phtml:352
|
179 |
-
msgid "Example Value"
|
180 |
-
msgstr ""
|
181 |
-
|
182 |
-
#: app/views/admin/page.phtml:400 app/views/admin/page.phtml:1401
|
183 |
-
#: app/views/admin/page.phtml:1545
|
184 |
-
msgid "e.g"
|
185 |
-
msgstr "ex : "
|
186 |
-
|
187 |
-
#: app/views/admin/page.phtml:413
|
188 |
-
#, fuzzy
|
189 |
-
msgid "Click Button Settings"
|
190 |
-
msgstr "Paramètre du bouton de menu"
|
191 |
-
|
192 |
-
#: app/views/admin/page.phtml:419
|
193 |
-
#, fuzzy
|
194 |
-
msgid "Click Button Title"
|
195 |
-
msgstr "Bouton de menu"
|
196 |
-
|
197 |
-
#: app/views/admin/page.phtml:421
|
198 |
-
msgid "This is the title under the 3 lines of the click button"
|
199 |
-
msgstr "Ceci est le titre en dessous des 3 lignes du bouton de menu"
|
200 |
-
|
201 |
-
#: app/views/admin/page.phtml:431
|
202 |
-
#, fuzzy
|
203 |
-
msgid "Click Button Image"
|
204 |
-
msgstr "Bouton de menu"
|
205 |
-
|
206 |
-
#: app/views/admin/page.phtml:433
|
207 |
-
#, fuzzy
|
208 |
-
msgid ""
|
209 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
210 |
-
"will be used"
|
211 |
-
msgstr ""
|
212 |
-
"Ceci est l'image du bouton qui remplace les 3 lignes. Si laissé vide, les 3 "
|
213 |
-
"lignes seront utilisées"
|
214 |
-
|
215 |
-
#: app/views/admin/page.phtml:445 app/views/admin/page.phtml:483
|
216 |
-
#: app/views/admin/page.phtml:685 app/views/admin/page.phtml:901
|
217 |
-
#: app/views/admin/page.phtml:921
|
218 |
-
msgid "Upload Image"
|
219 |
-
msgstr "Insérer une image"
|
220 |
-
|
221 |
-
#: app/views/admin/page.phtml:454
|
222 |
-
#, fuzzy
|
223 |
-
msgid "Change click menu to an X on click"
|
224 |
-
msgstr "Changer le bouton de menu en X au clic"
|
225 |
-
|
226 |
-
#: app/views/admin/page.phtml:457
|
227 |
-
msgid "Tick this if you would like the 3 lines to turn into an x once clicked"
|
228 |
-
msgstr ""
|
229 |
-
"Cocher ceci si vous souhaitez que les 3 lignes deviennent un X une fois "
|
230 |
-
"cliqué"
|
231 |
-
|
232 |
-
#: app/views/admin/page.phtml:469
|
233 |
-
#, fuzzy
|
234 |
-
msgid "Click Button Image When Clicked"
|
235 |
-
msgstr "Image du bouton de fermeture"
|
236 |
-
|
237 |
-
#: app/views/admin/page.phtml:471
|
238 |
-
#, fuzzy
|
239 |
-
msgid ""
|
240 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
241 |
-
"empty, the 3 lines will be used"
|
242 |
-
msgstr ""
|
243 |
-
"Ceci est l'image du bouton qui remplace les 3 lignes une fois cliqué. Si "
|
244 |
-
"laissé vide, les 3 lignes seront utilisées"
|
245 |
-
|
246 |
-
#: app/views/admin/page.phtml:495
|
247 |
-
msgid "Fixed Positioning"
|
248 |
-
msgstr "Positionnement fixe"
|
249 |
-
|
250 |
-
#: app/views/admin/page.phtml:497
|
251 |
-
#, fuzzy
|
252 |
-
msgid ""
|
253 |
-
"Tick this if you would like the click button to remain in the same place "
|
254 |
-
"when scrolling"
|
255 |
-
msgstr ""
|
256 |
-
"Cocher si vous souhaitez que le bouton de menu reste fixe au défilement de "
|
257 |
-
"la page"
|
258 |
-
|
259 |
-
#: app/views/admin/page.phtml:510
|
260 |
-
msgid "Click Trigger"
|
261 |
-
msgstr ""
|
262 |
-
|
263 |
-
#: app/views/admin/page.phtml:512
|
264 |
-
msgid "You can set a custom ID or class for custom triggers here if you wish."
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#: app/views/admin/page.phtml:525
|
268 |
-
msgid "Click Button Size Settings"
|
269 |
-
msgstr "Paramètre du bouton de menu"
|
270 |
-
|
271 |
-
#: app/views/admin/page.phtml:531
|
272 |
-
msgid "Width"
|
273 |
-
msgstr "Largeur"
|
274 |
-
|
275 |
-
#: app/views/admin/page.phtml:533
|
276 |
-
msgid "This is the width of the individual 3 lines"
|
277 |
-
msgstr "Indiquer la largeur des 3 lignes"
|
278 |
-
|
279 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
280 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
281 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
282 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
283 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
284 |
-
#: app/views/admin/page.phtml:1538
|
285 |
-
msgid "px"
|
286 |
-
msgstr "px"
|
287 |
-
|
288 |
-
#: app/views/admin/page.phtml:545
|
289 |
-
msgid "Height"
|
290 |
-
msgstr "Hauteur"
|
291 |
-
|
292 |
-
#: app/views/admin/page.phtml:547
|
293 |
-
msgid "This is the height of the individual 3 lines"
|
294 |
-
msgstr "Indiquer la hauteur des 3 lignes individuellement"
|
295 |
-
|
296 |
-
#: app/views/admin/page.phtml:561
|
297 |
-
msgid "Margin"
|
298 |
-
msgstr "Marge"
|
299 |
-
|
300 |
-
#: app/views/admin/page.phtml:563
|
301 |
-
msgid "This is the margin between the individual 3 lines"
|
302 |
-
msgstr "Indiquer la marge entre les 3 lignes"
|
303 |
-
|
304 |
-
#: app/views/admin/page.phtml:583
|
305 |
-
#, fuzzy
|
306 |
-
msgid "Click Button Location Settings"
|
307 |
-
msgstr "Paramètre du bouton de menu"
|
308 |
-
|
309 |
-
#: app/views/admin/page.phtml:589 app/views/admin/page.phtml:747
|
310 |
-
msgid "Top"
|
311 |
-
msgstr "Haut"
|
312 |
-
|
313 |
-
#: app/views/admin/page.phtml:591
|
314 |
-
#, fuzzy
|
315 |
-
msgid ""
|
316 |
-
"This is the distance from the top of the page in px that the click button "
|
317 |
-
"will be displayed"
|
318 |
-
msgstr ""
|
319 |
-
"Indiquer la distance du haut de la page en px à laquelle le bouton de menu "
|
320 |
-
"sera affiché"
|
321 |
-
|
322 |
-
#: app/views/admin/page.phtml:603
|
323 |
-
msgid "Left/Right Distance"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#: app/views/admin/page.phtml:605
|
327 |
-
msgid ""
|
328 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
329 |
-
"that the menu will be displayed"
|
330 |
-
msgstr ""
|
331 |
-
|
332 |
-
#: app/views/admin/page.phtml:619
|
333 |
-
msgid "Left/Right"
|
334 |
-
msgstr ""
|
335 |
-
|
336 |
-
#: app/views/admin/page.phtml:621
|
337 |
-
msgid ""
|
338 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
339 |
-
"or right"
|
340 |
-
msgstr ""
|
341 |
-
|
342 |
-
#: app/views/admin/page.phtml:651
|
343 |
-
msgid "Menu Settings"
|
344 |
-
msgstr "Paramètres du menu"
|
345 |
-
|
346 |
-
#: app/views/admin/page.phtml:660
|
347 |
-
msgid "This is the title at the top of the responsive menu"
|
348 |
-
msgstr "Ceci est le titre en haut du menu responsive"
|
349 |
-
|
350 |
-
#: app/views/admin/page.phtml:671
|
351 |
-
msgid "Menu Image"
|
352 |
-
msgstr "Image de menu"
|
353 |
-
|
354 |
-
#: app/views/admin/page.phtml:673
|
355 |
-
msgid ""
|
356 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
357 |
-
"is 32px x 32px"
|
358 |
-
msgstr ""
|
359 |
-
"Ceci est l'image présente à côté du titre du menu. La meilleure taille est "
|
360 |
-
"32px x 32px"
|
361 |
-
|
362 |
-
#: app/views/admin/page.phtml:695
|
363 |
-
msgid "Choose Menu To Responsify"
|
364 |
-
msgstr "Choisir le menu responsive"
|
365 |
-
|
366 |
-
#: app/views/admin/page.phtml:697
|
367 |
-
msgid "This is the menu that will be used responsively"
|
368 |
-
msgstr "Ceci est le menu qui sera utilisé pour le responsive"
|
369 |
-
|
370 |
-
#: app/views/admin/page.phtml:717
|
371 |
-
msgid "You haven't set up any site menus yet"
|
372 |
-
msgstr "Vous n'avez pas encore sélectionné de menu"
|
373 |
-
|
374 |
-
#: app/views/admin/page.phtml:726
|
375 |
-
msgid "Slide Side"
|
376 |
-
msgstr "Côté animé (slide)"
|
377 |
-
|
378 |
-
#: app/views/admin/page.phtml:728
|
379 |
-
msgid "This is the side of the screen from which the menu will slide"
|
380 |
-
msgstr "Ceci est le côté de l'écran par lequel le menu va apparaître"
|
381 |
-
|
382 |
-
#: app/views/admin/page.phtml:735 app/views/admin/page.phtml:1288
|
383 |
-
#: app/views/admin/page.phtml:1295
|
384 |
-
msgid "Left"
|
385 |
-
msgstr "Gauche"
|
386 |
-
|
387 |
-
#: app/views/admin/page.phtml:741 app/views/admin/page.phtml:1305
|
388 |
-
msgid "Right"
|
389 |
-
msgstr "Droite"
|
390 |
-
|
391 |
-
#: app/views/admin/page.phtml:753
|
392 |
-
msgid "Bottom"
|
393 |
-
msgstr "Bas"
|
394 |
-
|
395 |
-
#: app/views/admin/page.phtml:766
|
396 |
-
msgid "Choose Theme Location Menu To Responsify"
|
397 |
-
msgstr ""
|
398 |
-
|
399 |
-
#: app/views/admin/page.phtml:768
|
400 |
-
msgid ""
|
401 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
402 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
403 |
-
"like polylang)"
|
404 |
-
msgstr ""
|
405 |
-
|
406 |
-
#: app/views/admin/page.phtml:787
|
407 |
-
msgid "None"
|
408 |
-
msgstr ""
|
409 |
-
|
410 |
-
#: app/views/admin/page.phtml:794
|
411 |
-
msgid "You haven't set up any menus location yet"
|
412 |
-
msgstr ""
|
413 |
-
|
414 |
-
#: app/views/admin/page.phtml:802
|
415 |
-
msgid "Menu Title Link"
|
416 |
-
msgstr "Lien du titre de menu"
|
417 |
-
|
418 |
-
#: app/views/admin/page.phtml:804
|
419 |
-
msgid "This is the link location for the title"
|
420 |
-
msgstr "Ceci est le lien pour le titre de menu"
|
421 |
-
|
422 |
-
#: app/views/admin/page.phtml:814
|
423 |
-
msgid "Menu Title Link Location"
|
424 |
-
msgstr "Localisation du lien du titre de menu"
|
425 |
-
|
426 |
-
#: app/views/admin/page.phtml:816
|
427 |
-
msgid "This is where your title page will be opened once clicked"
|
428 |
-
msgstr "Ceci est où votre page sera ouverte une fois ouverte"
|
429 |
-
|
430 |
-
#: app/views/admin/page.phtml:823
|
431 |
-
msgid "New Tab"
|
432 |
-
msgstr "Nouvel onglet"
|
433 |
-
|
434 |
-
#: app/views/admin/page.phtml:829
|
435 |
-
msgid "Same Page"
|
436 |
-
msgstr "Même page"
|
437 |
-
|
438 |
-
#: app/views/admin/page.phtml:835
|
439 |
-
msgid "Parent Page"
|
440 |
-
msgstr "Page parente"
|
441 |
-
|
442 |
-
#: app/views/admin/page.phtml:841
|
443 |
-
msgid "Full Window Body"
|
444 |
-
msgstr "Corps de fenêtre"
|
445 |
-
|
446 |
-
#: app/views/admin/page.phtml:852
|
447 |
-
msgid "Sub Menu Arrow Settings"
|
448 |
-
msgstr "Paramètre des flèches de sous-menu"
|
449 |
-
|
450 |
-
#: app/views/admin/page.phtml:858
|
451 |
-
msgid "Active Geometric Shape"
|
452 |
-
msgstr "Forme géométrique active"
|
453 |
-
|
454 |
-
#: app/views/admin/page.phtml:869
|
455 |
-
msgid "Inactive Geometric Shape"
|
456 |
-
msgstr ""
|
457 |
-
|
458 |
-
#: app/views/admin/page.phtml:882
|
459 |
-
msgid "You can find a list of Geometric HTML shape codes below"
|
460 |
-
msgstr "Vous pouvez trouver une liste de formes géométriques HTML ci-dessous :"
|
461 |
-
|
462 |
-
#: app/views/admin/page.phtml:889
|
463 |
-
msgid "Active Image"
|
464 |
-
msgstr "Image active"
|
465 |
-
|
466 |
-
#: app/views/admin/page.phtml:909
|
467 |
-
msgid "Inactive Image"
|
468 |
-
msgstr "Image inactive"
|
469 |
-
|
470 |
-
#: app/views/admin/page.phtml:932
|
471 |
-
msgid ""
|
472 |
-
"Images have preference over shapes, to use HTML shapes please leave the "
|
473 |
-
"image field blank"
|
474 |
-
msgstr ""
|
475 |
-
"Les images sont prioritaires sur les formes géométriques, pour utiliser des "
|
476 |
-
"formes HTML veuillez laisser les champs vide"
|
477 |
-
|
478 |
-
#: app/views/admin/page.phtml:939
|
479 |
-
msgid "Colour Settings"
|
480 |
-
msgstr "Paramètre de couleur"
|
481 |
-
|
482 |
-
#: app/views/admin/page.phtml:941
|
483 |
-
msgid "Background Colours"
|
484 |
-
msgstr "Couleur de fond"
|
485 |
-
|
486 |
-
#: app/views/admin/page.phtml:945
|
487 |
-
msgid "Click Button"
|
488 |
-
msgstr "Bouton de menu"
|
489 |
-
|
490 |
-
#: app/views/admin/page.phtml:953
|
491 |
-
msgid "Click Button Line & Text Colour"
|
492 |
-
msgstr "Couleur des lignes et texte du bouton"
|
493 |
-
|
494 |
-
#: app/views/admin/page.phtml:955
|
495 |
-
#, fuzzy
|
496 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
497 |
-
msgstr "Ceci est la couleur des lignes et du texte du bouton de menu"
|
498 |
-
|
499 |
-
#: app/views/admin/page.phtml:968
|
500 |
-
msgid "Click Button Background Colour"
|
501 |
-
msgstr "Couleur de fond du bouton"
|
502 |
-
|
503 |
-
#: app/views/admin/page.phtml:970
|
504 |
-
msgid "This is the background colour of the 3 lines container"
|
505 |
-
msgstr "Ceci est la couleur de fond du bouton de menu"
|
506 |
-
|
507 |
-
#: app/views/admin/page.phtml:985
|
508 |
-
msgid "Click Button Background Transparent"
|
509 |
-
msgstr "Fond transparent"
|
510 |
-
|
511 |
-
#: app/views/admin/page.phtml:987
|
512 |
-
msgid ""
|
513 |
-
"Tick this if you would like a transparent background on the click button"
|
514 |
-
msgstr ""
|
515 |
-
"Cocher si vous souhaitez utiliser un fond transparent pour le bouton de menu"
|
516 |
-
|
517 |
-
#: app/views/admin/page.phtml:1007
|
518 |
-
msgid "Main Menu"
|
519 |
-
msgstr "Menu principal"
|
520 |
-
|
521 |
-
#: app/views/admin/page.phtml:1015
|
522 |
-
msgid "Menu Background Colour"
|
523 |
-
msgstr "Couleur de fond du menu"
|
524 |
-
|
525 |
-
#: app/views/admin/page.phtml:1017
|
526 |
-
msgid "This is the background colour of the expanded menu"
|
527 |
-
msgstr "Sélectionner la couleur de fond du menu ouvert"
|
528 |
-
|
529 |
-
#: app/views/admin/page.phtml:1030
|
530 |
-
msgid "Menu Background Hover Colour"
|
531 |
-
msgstr "Couleur de fond au survol"
|
532 |
-
|
533 |
-
#: app/views/admin/page.phtml:1032
|
534 |
-
msgid "This is the hover background colour of the expanded menu"
|
535 |
-
msgstr "Sélectionner la couleur de fond au survol du menu"
|
536 |
-
|
537 |
-
#: app/views/admin/page.phtml:1047
|
538 |
-
msgid "Menu Link Border Colour"
|
539 |
-
msgstr "Couleur de bordure des liens"
|
540 |
-
|
541 |
-
#: app/views/admin/page.phtml:1049
|
542 |
-
msgid "This is the border colour of the menu links"
|
543 |
-
msgstr "Sélectionner la couleur des bordures des liens dans le menu"
|
544 |
-
|
545 |
-
#: app/views/admin/page.phtml:1062
|
546 |
-
msgid "Title Background Colour"
|
547 |
-
msgstr "Couleur de fond du titre"
|
548 |
-
|
549 |
-
#: app/views/admin/page.phtml:1064
|
550 |
-
msgid "This is the background colour of the menu title"
|
551 |
-
msgstr "Sélectionner la couleur de fond du titre du menu"
|
552 |
-
|
553 |
-
#: app/views/admin/page.phtml:1079
|
554 |
-
msgid "Current Page Link Background Colour"
|
555 |
-
msgstr "Couleur de fond de la page courante"
|
556 |
-
|
557 |
-
#: app/views/admin/page.phtml:1081
|
558 |
-
msgid "This is the background colour of the current page link"
|
559 |
-
msgstr "Sélectionner la couleur de fond de la page courante"
|
560 |
-
|
561 |
-
#: app/views/admin/page.phtml:1094
|
562 |
-
msgid "Current Page Link Background Hover Colour"
|
563 |
-
msgstr ""
|
564 |
-
|
565 |
-
#: app/views/admin/page.phtml:1096
|
566 |
-
msgid "This is the hover background colour of the current page link"
|
567 |
-
msgstr ""
|
568 |
-
|
569 |
-
#: app/views/admin/page.phtml:1110
|
570 |
-
msgid "Text Colours"
|
571 |
-
msgstr "Couleur des textes"
|
572 |
-
|
573 |
-
#: app/views/admin/page.phtml:1119
|
574 |
-
msgid "Menu Title Colour"
|
575 |
-
msgstr "Couleur du titre"
|
576 |
-
|
577 |
-
#: app/views/admin/page.phtml:1121
|
578 |
-
msgid "This is the text colour of the menu title"
|
579 |
-
msgstr "Sélectionner la couleur du titre du menu"
|
580 |
-
|
581 |
-
#: app/views/admin/page.phtml:1134
|
582 |
-
msgid "Menu Title Hover Colour"
|
583 |
-
msgstr "Couleur du titre au survol"
|
584 |
-
|
585 |
-
#: app/views/admin/page.phtml:1136
|
586 |
-
msgid "This is the hover colour of the menu title"
|
587 |
-
msgstr "Sélectionner la couleur du titre du menu au survol"
|
588 |
-
|
589 |
-
#: app/views/admin/page.phtml:1151
|
590 |
-
msgid "Menu Link Colour"
|
591 |
-
msgstr "Couleur des liens"
|
592 |
-
|
593 |
-
#: app/views/admin/page.phtml:1153
|
594 |
-
msgid "This is the text colour of the menu links"
|
595 |
-
msgstr "Sélectionner la couleur des liens au survol"
|
596 |
-
|
597 |
-
#: app/views/admin/page.phtml:1166
|
598 |
-
msgid "Menu Link Hover Colour"
|
599 |
-
msgstr "Couleur des liens au survol"
|
600 |
-
|
601 |
-
#: app/views/admin/page.phtml:1168
|
602 |
-
msgid "This is the text hover colour of the menu links"
|
603 |
-
msgstr "Sélectionner la couleur des liens au survol"
|
604 |
-
|
605 |
-
#: app/views/admin/page.phtml:1184
|
606 |
-
msgid "Current Page Link Colour"
|
607 |
-
msgstr "Couleur du lien de la page courante"
|
608 |
-
|
609 |
-
#: app/views/admin/page.phtml:1186
|
610 |
-
msgid "This is the text colour of the current page link"
|
611 |
-
msgstr "Sélectionner la couleur du lien de la page courante"
|
612 |
-
|
613 |
-
#: app/views/admin/page.phtml:1199
|
614 |
-
msgid "Current Page Link Hover Colour"
|
615 |
-
msgstr ""
|
616 |
-
|
617 |
-
#: app/views/admin/page.phtml:1201
|
618 |
-
msgid "This is the text hover colour of the current page link"
|
619 |
-
msgstr ""
|
620 |
-
|
621 |
-
#: app/views/admin/page.phtml:1218
|
622 |
-
msgid "Style Settings"
|
623 |
-
msgstr "Paramètres de style"
|
624 |
-
|
625 |
-
#: app/views/admin/page.phtml:1225
|
626 |
-
msgid "Font"
|
627 |
-
msgstr "Typographie"
|
628 |
-
|
629 |
-
#: app/views/admin/page.phtml:1227
|
630 |
-
msgid "Enter a font name below, if empty your default site font will be used"
|
631 |
-
msgstr ""
|
632 |
-
"Entrer le nom d'une typo ci-dessous, si laissé vide la typo par défaut sera "
|
633 |
-
"utilisée"
|
634 |
-
|
635 |
-
#: app/views/admin/page.phtml:1238
|
636 |
-
msgid "Font Size"
|
637 |
-
msgstr "Taille de texte"
|
638 |
-
|
639 |
-
#: app/views/admin/page.phtml:1240
|
640 |
-
msgid "Enter a font size in pixels below"
|
641 |
-
msgstr "Entrer la taille du texte en px ci-dessous"
|
642 |
-
|
643 |
-
#: app/views/admin/page.phtml:1240 app/views/admin/page.phtml:1257
|
644 |
-
#: app/views/admin/page.phtml:1271 app/views/admin/page.phtml:1288
|
645 |
-
#: app/views/admin/page.phtml:1315 app/views/admin/page.phtml:1417
|
646 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
647 |
-
msgid "default"
|
648 |
-
msgstr "défaut"
|
649 |
-
|
650 |
-
#: app/views/admin/page.phtml:1255
|
651 |
-
msgid "Click Button Font Size"
|
652 |
-
msgstr "Taille du texte du bouton"
|
653 |
-
|
654 |
-
#: app/views/admin/page.phtml:1257
|
655 |
-
msgid "Enter a click button font size in pixels below"
|
656 |
-
msgstr "Entrer une taille de typo pour le bouton ci-dessous"
|
657 |
-
|
658 |
-
#: app/views/admin/page.phtml:1269
|
659 |
-
msgid "Title Font Size"
|
660 |
-
msgstr "Taille du titre"
|
661 |
-
|
662 |
-
#: app/views/admin/page.phtml:1271
|
663 |
-
msgid "Enter a title font size in pixels below"
|
664 |
-
msgstr "Entrer la taille du titre de menu en px ci-dessous"
|
665 |
-
|
666 |
-
#: app/views/admin/page.phtml:1286
|
667 |
-
msgid "Text Alignment"
|
668 |
-
msgstr "Alignement du texte"
|
669 |
-
|
670 |
-
#: app/views/admin/page.phtml:1288
|
671 |
-
msgid "Enter a text alignment option below"
|
672 |
-
msgstr "Indiquer les options d'alignement du texte ci-dessous"
|
673 |
-
|
674 |
-
#: app/views/admin/page.phtml:1300
|
675 |
-
msgid "Centre"
|
676 |
-
msgstr "Centre"
|
677 |
-
|
678 |
-
#: app/views/admin/page.phtml:1313
|
679 |
-
msgid "Links Height"
|
680 |
-
msgstr "Hauteur des liens"
|
681 |
-
|
682 |
-
#: app/views/admin/page.phtml:1315
|
683 |
-
msgid "Enter a link height size in pixels below"
|
684 |
-
msgstr "Indiquer la hauteur des liens en px ci-dessous"
|
685 |
-
|
686 |
-
#: app/views/admin/page.phtml:1330
|
687 |
-
msgid ""
|
688 |
-
"Setting the below two values to the same number will give you a fixed width "
|
689 |
-
"effect"
|
690 |
-
msgstr ""
|
691 |
-
"Régler ces deux valeurs à l'identique va vous donner une largeur fixe du menu"
|
692 |
-
|
693 |
-
#: app/views/admin/page.phtml:1340
|
694 |
-
msgid "Minimum Width"
|
695 |
-
msgstr "Largeur minimum"
|
696 |
-
|
697 |
-
#: app/views/admin/page.phtml:1342
|
698 |
-
msgid "Enter a minimum menu width size in pixels below"
|
699 |
-
msgstr "Indiquer une largeur minimum en px pour le menu"
|
700 |
-
|
701 |
-
#: app/views/admin/page.phtml:1354
|
702 |
-
msgid "Maximum Width"
|
703 |
-
msgstr "Largeur maximale"
|
704 |
-
|
705 |
-
#: app/views/admin/page.phtml:1356
|
706 |
-
msgid "Enter a maximum menu width size in pixels below"
|
707 |
-
msgstr "Indiquer une largeur maximale en px pour le menu"
|
708 |
-
|
709 |
-
#: app/views/admin/page.phtml:1371
|
710 |
-
msgid "Animation Settings"
|
711 |
-
msgstr "Paramètres d'animation"
|
712 |
-
|
713 |
-
#: app/views/admin/page.phtml:1377
|
714 |
-
msgid "Slide Animation"
|
715 |
-
msgstr "Animation du menu"
|
716 |
-
|
717 |
-
#: app/views/admin/page.phtml:1379
|
718 |
-
msgid "Choose the type of animation applied to the menu"
|
719 |
-
msgstr "Choisir le type d'animation à appliquer au menu"
|
720 |
-
|
721 |
-
#: app/views/admin/page.phtml:1386
|
722 |
-
msgid "Overlay"
|
723 |
-
msgstr ""
|
724 |
-
|
725 |
-
#: app/views/admin/page.phtml:1391
|
726 |
-
#, fuzzy
|
727 |
-
msgid "Push"
|
728 |
-
msgstr ""
|
729 |
-
"Ceci est l'élément CSS du container que vous souhaitez pousser en utilisant "
|
730 |
-
"l'animation \"Push\""
|
731 |
-
|
732 |
-
#: app/views/admin/page.phtml:1399
|
733 |
-
msgid "Page Wrappers CSS"
|
734 |
-
msgstr "Container CSS de la page"
|
735 |
-
|
736 |
-
#: app/views/admin/page.phtml:1401
|
737 |
-
msgid ""
|
738 |
-
"This is the CSS of the wrapper you want to push when using the push animation"
|
739 |
-
msgstr ""
|
740 |
-
"Ceci est l'élément CSS du container que vous souhaitez pousser en utilisant "
|
741 |
-
"l'animation \"Push\""
|
742 |
-
|
743 |
-
#: app/views/admin/page.phtml:1415
|
744 |
-
msgid "Animation Speed"
|
745 |
-
msgstr "Vitesse d'animation"
|
746 |
-
|
747 |
-
#: app/views/admin/page.phtml:1417
|
748 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
749 |
-
msgstr "Indiquer la vitesse de l'animation en seconde ci-dessous"
|
750 |
-
|
751 |
-
#: app/views/admin/page.phtml:1424 app/views/admin/page.phtml:1438
|
752 |
-
msgid "seconds"
|
753 |
-
msgstr "secondes"
|
754 |
-
|
755 |
-
#: app/views/admin/page.phtml:1429
|
756 |
-
msgid "Transition Speed"
|
757 |
-
msgstr "Vitesse de transition"
|
758 |
-
|
759 |
-
#: app/views/admin/page.phtml:1431
|
760 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
761 |
-
msgstr "Indiquer la vitesse de la transition en seconde ci-dessous"
|
762 |
-
|
763 |
-
#: app/views/admin/page.phtml:1445
|
764 |
-
msgid "Accordion Animation For Sub-Menus"
|
765 |
-
msgstr "Animation accordéon pour les sous-menu"
|
766 |
-
|
767 |
-
#: app/views/admin/page.phtml:1447
|
768 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
769 |
-
msgstr ""
|
770 |
-
"Cocher pour activer l'animation accordéon pour les éléments de sous-menu"
|
771 |
-
|
772 |
-
#: app/views/admin/page.phtml:1460
|
773 |
-
msgid "Push button with Animation"
|
774 |
-
msgstr ""
|
775 |
-
|
776 |
-
#: app/views/admin/page.phtml:1462
|
777 |
-
msgid "Tick to enable the click button to be pushed with animation"
|
778 |
-
msgstr ""
|
779 |
-
|
780 |
-
#: app/views/admin/page.phtml:1480
|
781 |
-
msgid "Additional HTML Content Settings"
|
782 |
-
msgstr "Paramètre de contenu HTML additionnel"
|
783 |
-
|
784 |
-
#: app/views/admin/page.phtml:1487
|
785 |
-
msgid "Additional HTML Content"
|
786 |
-
msgstr "Contenu HTML additionnel"
|
787 |
-
|
788 |
-
#: app/views/admin/page.phtml:1489
|
789 |
-
msgid ""
|
790 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
791 |
-
"banners etc. (accepts shortcodes)"
|
792 |
-
msgstr ""
|
793 |
-
|
794 |
-
#: app/views/admin/page.phtml:1496
|
795 |
-
msgid "Additional HTML Content Positioning"
|
796 |
-
msgstr "Positionnement du contenu HTML additionnel"
|
797 |
-
|
798 |
-
#: app/views/admin/page.phtml:1498
|
799 |
-
msgid "Select where you would like the additional HTML content to appear"
|
800 |
-
msgstr "Sélectionner où vous souhaitez faire apparaître le contenu"
|
801 |
-
|
802 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
803 |
-
msgid "Above Menu Links"
|
804 |
-
msgstr "Au-dessus des liens de menu"
|
805 |
-
|
806 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
807 |
-
msgid "Below Menu Links"
|
808 |
-
msgstr "En-dessous des liens de menu"
|
809 |
-
|
810 |
-
#: app/views/admin/page.phtml:1523
|
811 |
-
#, fuzzy
|
812 |
-
msgid "Menu Advanced Settings"
|
813 |
-
msgstr "Paramètres du menu"
|
814 |
-
|
815 |
-
#: app/views/admin/page.phtml:1529
|
816 |
-
msgid "Menu Breakpoint"
|
817 |
-
msgstr "Limite du menu"
|
818 |
-
|
819 |
-
#: app/views/admin/page.phtml:1531
|
820 |
-
msgid ""
|
821 |
-
"This is the point where the responsive menu will be visible in px width of "
|
822 |
-
"the browser"
|
823 |
-
msgstr ""
|
824 |
-
"Ceci est le point auquel le menu responsive sera visible en px d'après la "
|
825 |
-
"largeur du navigateur"
|
826 |
-
|
827 |
-
#: app/views/admin/page.phtml:1543
|
828 |
-
msgid "CSS of Menu To Hide"
|
829 |
-
msgstr "CSS du menu à cacher"
|
830 |
-
|
831 |
-
#: app/views/admin/page.phtml:1545
|
832 |
-
msgid ""
|
833 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
834 |
-
msgstr ""
|
835 |
-
"Entrer la classe CSS du menu à cacher une fois le menu responsive affiché"
|
836 |
-
|
837 |
-
#: app/views/admin/page.phtml:1559
|
838 |
-
msgid "Menu Depth"
|
839 |
-
msgstr "Profondeur du menu"
|
840 |
-
|
841 |
-
#: app/views/admin/page.phtml:1561
|
842 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
843 |
-
msgstr "Ceci est le niveau jusqu'au quel votre menu sera visible (max 5)"
|
844 |
-
|
845 |
-
#: app/views/admin/page.phtml:1580
|
846 |
-
msgid "Menu Width"
|
847 |
-
msgstr "Largeur du menu"
|
848 |
-
|
849 |
-
#: app/views/admin/page.phtml:1582
|
850 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
851 |
-
msgstr "Entrer la largeur qu'utilise le menu à travers la page une fois ouvert"
|
852 |
-
|
853 |
-
#: app/views/admin/page.phtml:1603
|
854 |
-
msgid "Remove Search Box"
|
855 |
-
msgstr "Retirer le champ de recherche"
|
856 |
-
|
857 |
-
#: app/views/admin/page.phtml:1605
|
858 |
-
msgid "Tick if you would like to remove the search box"
|
859 |
-
msgstr "Cocher si vous souhaitez retirer le champ de recherche"
|
860 |
-
|
861 |
-
#: app/views/admin/page.phtml:1618
|
862 |
-
msgid "Search Box Positioning"
|
863 |
-
msgstr "Positionner le champ de recherche"
|
864 |
-
|
865 |
-
#: app/views/admin/page.phtml:1620
|
866 |
-
msgid "Select where you would like the search box to appear"
|
867 |
-
msgstr "Sélectionner où vous souhaitez faire apparaître le champ de recherche"
|
868 |
-
|
869 |
-
#: app/views/admin/page.phtml:1642
|
870 |
-
msgid "Click to Close Menu on Link Click"
|
871 |
-
msgstr "Fermer le menu au clic d'un lien"
|
872 |
-
|
873 |
-
#: app/views/admin/page.phtml:1644
|
874 |
-
msgid ""
|
875 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
876 |
-
"single page sites"
|
877 |
-
msgstr ""
|
878 |
-
"Cocher si vous souhaitez fermer le menu à chaque clic sur un lien, pratique "
|
879 |
-
"pour des sites one page."
|
880 |
-
|
881 |
-
#: app/views/admin/page.phtml:1657
|
882 |
-
msgid "Auto Expand Current Parent Items"
|
883 |
-
msgstr "Ouvrir automatiquement les pages parentes courantes"
|
884 |
-
|
885 |
-
#: app/views/admin/page.phtml:1659
|
886 |
-
msgid ""
|
887 |
-
"Tick if you would like to make the current pages children expanded "
|
888 |
-
"automatically"
|
889 |
-
msgstr ""
|
890 |
-
"Cocher si vous souhaitez afficher automatiquement les enfants de la page "
|
891 |
-
"courante"
|
892 |
-
|
893 |
-
#: app/views/admin/page.phtml:1673
|
894 |
-
msgid "Auto Expand Sub-Menus"
|
895 |
-
msgstr "Ouverture automatique des sous-menus"
|
896 |
-
|
897 |
-
#: app/views/admin/page.phtml:1675
|
898 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
899 |
-
msgstr ""
|
900 |
-
"Cocher si vous souhaitez que les sous-menus soient automatiquement ouvert"
|
901 |
-
|
902 |
-
#: app/views/admin/page.phtml:1688
|
903 |
-
msgid "Ignore Parent Clicks"
|
904 |
-
msgstr "Ignorer les clic sur les pages parentes"
|
905 |
-
|
906 |
-
#: app/views/admin/page.phtml:1690
|
907 |
-
msgid "Tick if you would like to ignore clicks on parent links"
|
908 |
-
msgstr ""
|
909 |
-
"Cocher si vous souhaitez ignorer les clics sur les liens des pages parentes"
|
910 |
-
|
911 |
-
#: app/views/admin/page.phtml:1704
|
912 |
-
msgid "Click to Close Menu on Page Click"
|
913 |
-
msgstr "Fermer le menu au clic sur la page"
|
914 |
-
|
915 |
-
#: app/views/admin/page.phtml:1706
|
916 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
917 |
-
msgstr "Cocher si vous souhaitez fermer le menu au clic sur la page"
|
918 |
-
|
919 |
-
#: app/views/admin/page.phtml:1727
|
920 |
-
#, fuzzy
|
921 |
-
msgid "Technical Settings"
|
922 |
-
msgstr "Paramètres"
|
923 |
-
|
924 |
-
#: app/views/admin/page.phtml:1733
|
925 |
-
msgid "Minify output"
|
926 |
-
msgstr "Minifier"
|
927 |
-
|
928 |
-
#: app/views/admin/page.phtml:1735
|
929 |
-
msgid ""
|
930 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
931 |
-
"file size"
|
932 |
-
msgstr ""
|
933 |
-
"Cocher si vous souhaitez minifier les scripts/styles. Economise jusqu'à 50% "
|
934 |
-
"en taille de fichiers"
|
935 |
-
|
936 |
-
#: app/views/admin/page.phtml:1748
|
937 |
-
msgid "Include script in footer"
|
938 |
-
msgstr "Inclure le script dans le footer"
|
939 |
-
|
940 |
-
#: app/views/admin/page.phtml:1750
|
941 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
942 |
-
msgstr "Cocher si vous souhaitez inclure vous scripts jQuery dans le footer"
|
943 |
-
|
944 |
-
#: app/views/admin/page.phtml:1764
|
945 |
-
msgid "Include CSS/JS as external files"
|
946 |
-
msgstr "Inclure le CSS/JS en fichiers externes"
|
947 |
-
|
948 |
-
#: app/views/admin/page.phtml:1766
|
949 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
950 |
-
msgstr ""
|
951 |
-
"Cocher si vous souhaitez inclure le CSS et jQuery en tant que fichiers "
|
952 |
-
"externes"
|
953 |
-
|
954 |
-
#: app/views/admin/page.phtml:1777
|
955 |
-
msgid "Remove CSS !important tags"
|
956 |
-
msgstr "Retirer les !important du CSS"
|
957 |
-
|
958 |
-
#: app/views/admin/page.phtml:1780
|
959 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
960 |
-
msgstr "Cocher si vous souhaitez retirer les !important du CSS"
|
961 |
-
|
962 |
-
#: app/views/admin/page.phtml:1781
|
963 |
-
msgid ""
|
964 |
-
"Ticking this will make it easier to over-ride the styles but may make the "
|
965 |
-
"default settings not display well"
|
966 |
-
msgstr ""
|
967 |
-
"Cocher ceci vous permettra de passer par dessus les style mais risque "
|
968 |
-
"d'empêcher les paramètres par défaut de s'afficher correctement."
|
969 |
-
|
970 |
-
#: app/views/admin/page.phtml:1795
|
971 |
-
msgid "Custom Walker"
|
972 |
-
msgstr ""
|
973 |
-
|
974 |
-
#: app/views/admin/page.phtml:1803
|
975 |
-
msgid "Specify you own Walker for the menu (wp_nav_menu parameter)"
|
976 |
-
msgstr ""
|
977 |
-
|
978 |
-
#: app/views/admin/page.phtml:1804
|
979 |
-
msgid ""
|
980 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
981 |
-
"alone"
|
982 |
-
msgstr ""
|
983 |
-
|
984 |
-
#: app/views/admin/page.phtml:1833
|
985 |
-
msgid "Import File"
|
986 |
-
msgstr "Importer un fichier"
|
987 |
-
|
988 |
-
#: app/views/admin/page.phtml:1840
|
989 |
-
msgid "Import Options From XML"
|
990 |
-
msgstr ""
|
991 |
-
|
992 |
-
#: app/views/admin/page.phtml:1859
|
993 |
-
msgid "Export Current Options"
|
994 |
-
msgstr ""
|
995 |
-
|
996 |
-
#: app/views/admin/page.phtml:1874
|
997 |
-
msgid ""
|
998 |
-
"Please be warned this will reset all your current settings, please export "
|
999 |
-
"your current files first"
|
1000 |
-
msgstr ""
|
1001 |
-
|
1002 |
-
#: app/views/admin/page.phtml:1880
|
1003 |
-
msgid "Reset ALL Current Options"
|
1004 |
-
msgstr ""
|
1005 |
-
|
1006 |
-
#: app/views/admin/page.phtml:1895 app/views/admin/page.phtml:1908
|
1007 |
-
msgid ""
|
1008 |
-
"This feature is only available in the pro version, please click below to "
|
1009 |
-
"upgrade"
|
1010 |
-
msgstr ""
|
1011 |
-
|
1012 |
-
#: app/views/admin/page.phtml:1898 app/views/admin/page.phtml:1911
|
1013 |
-
msgid "Upgrade now"
|
1014 |
-
msgstr ""
|
1015 |
-
|
1016 |
-
#~ msgid ""
|
1017 |
-
#~ "Highly Customisable Responsive Menu Plugin Created By ResponsiveMenu"
|
1018 |
-
#~ msgstr ""
|
1019 |
-
#~ "Plugin pour menu responsive hautement personnalisable créé par Responsive "
|
1020 |
-
#~ "Menu"
|
1021 |
-
|
1022 |
-
#~ msgid "Viewport Meta Tag Check"
|
1023 |
-
#~ msgstr "Vérification du meta tag"
|
1024 |
-
|
1025 |
-
#~ msgid "Below Viewport Meta Tag Found"
|
1026 |
-
#~ msgstr "Meta tag trouvé ci-dessous"
|
1027 |
-
|
1028 |
-
#~ msgid "Viewport Meta Tag Not Found"
|
1029 |
-
#~ msgstr "Meta tag non trouvé"
|
1030 |
-
|
1031 |
-
#~ msgid ""
|
1032 |
-
#~ "This is only a reference guide and is not critical if you are seeing "
|
1033 |
-
#~ "errors, these can usually be ignored"
|
1034 |
-
#~ msgstr ""
|
1035 |
-
#~ "Ceci est seulement une indication de référence et n'est pas obligatoire. "
|
1036 |
-
#~ "Si vous voyez ces erreurs, elles peuvent généralement être ignorées."
|
1037 |
-
|
1038 |
-
#~ msgid ""
|
1039 |
-
#~ "For a list of available shortcode options please visit the following page:"
|
1040 |
-
#~ msgstr ""
|
1041 |
-
#~ "Pour une liste des shortcodes disponibles veuillez visiter la page "
|
1042 |
-
#~ "suivante :"
|
1043 |
-
|
1044 |
-
#~ msgid ""
|
1045 |
-
#~ "This is the distance from the right of the page in % that the menu will "
|
1046 |
-
#~ "be displayed"
|
1047 |
-
#~ msgstr ""
|
1048 |
-
#~ "Indiquer la distance depuis la droite de la page en % à laquelle le "
|
1049 |
-
#~ "bouton de menu sera affiché"
|
1050 |
-
|
1051 |
-
#~ msgid "Inactive Gemetric Shape"
|
1052 |
-
#~ msgstr "Forme géométrique inactive"
|
1053 |
-
|
1054 |
-
#~ msgid ""
|
1055 |
-
#~ "Warning: The Push Animation requires you to place the following meta tag "
|
1056 |
-
#~ "in your site header"
|
1057 |
-
#~ msgstr ""
|
1058 |
-
#~ "Attention : L'animation Push requière de placer le meta tag suivant dans "
|
1059 |
-
#~ "le header de votre site"
|
1060 |
-
|
1061 |
-
#~ msgid "Export Options"
|
1062 |
-
#~ msgstr "Exporter les options"
|
1063 |
-
|
1064 |
-
#~ msgid "Import Options"
|
1065 |
-
#~ msgstr "Importer des options"
|
1066 |
-
|
1067 |
-
#~ msgid "This currently only works on the first depth level"
|
1068 |
-
#~ msgstr "Ceci ne fonctionne que pour les éléments de niveau 1"
|
1069 |
-
|
1070 |
-
#~ msgid ""
|
1071 |
-
#~ "Enter any additional HTML you may want below, useful for advertisement "
|
1072 |
-
#~ "banners etc."
|
1073 |
-
#~ msgstr ""
|
1074 |
-
#~ "Entrer n'importe quel contenu HTML additionnel que vous le souhaitez, "
|
1075 |
-
#~ "ceci est utile pour des bannières de publicité etc..."
|
1076 |
-
|
1077 |
-
#~ msgid ""
|
1078 |
-
#~ "Use shortcode [responsive-menu] - currently this is only for those that "
|
1079 |
-
#~ "know about CSS customisation etc. and doesn't offer any additional "
|
1080 |
-
#~ "functionality"
|
1081 |
-
#~ msgstr ""
|
1082 |
-
#~ "Utilise le shortcode [responsive-menu] - ceci est a utiliser par ceux "
|
1083 |
-
#~ "aillant des connaissance à propos de la customisation du CSS et n'offre "
|
1084 |
-
#~ "aucune fonctionnalité additionnelle"
|
1085 |
-
|
1086 |
-
#~ msgid "Menu Button Title"
|
1087 |
-
#~ msgstr "Titre du bouton de menu"
|
1088 |
-
|
1089 |
-
#~ msgid "Click Menu Image"
|
1090 |
-
#~ msgstr "Image du bouton d'ouverture"
|
1091 |
-
|
1092 |
-
#~ msgid "Location Settings"
|
1093 |
-
#~ msgstr "Paramètre de localisation"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
translations/responsive-menu-hr.mo
DELETED
Binary file
|
translations/responsive-menu-hr.po
DELETED
@@ -1,1131 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu WordPress\n"
|
4 |
-
"POT-Creation-Date: 2015-08-19 21:38+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-08-19 21:38+0100\n"
|
6 |
-
"Last-Translator: ResponsiveMenu <support@responsive.menu>\n"
|
7 |
-
"Language-Team: ResponsiveMenu <support@responsive.menu>\n"
|
8 |
-
"Language: hr\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.4\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: app\n"
|
17 |
-
|
18 |
-
#: app/config.php:84 app/views/admin/page.phtml:658
|
19 |
-
msgid "Menu Title"
|
20 |
-
msgstr "Naslov izbornika"
|
21 |
-
|
22 |
-
#: app/controllers/AdminController.php:56
|
23 |
-
#: app/controllers/AdminController.php:57
|
24 |
-
msgid "Responsive Menu"
|
25 |
-
msgstr "Responsive Menu"
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
#, fuzzy
|
29 |
-
msgid "Settings"
|
30 |
-
msgstr "Postavke izbornika"
|
31 |
-
|
32 |
-
#: app/controllers/GlobalController.php:57
|
33 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
34 |
-
msgstr ""
|
35 |
-
|
36 |
-
#: app/library/responsive-menu/Export.php:23
|
37 |
-
#, fuzzy
|
38 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
39 |
-
msgstr ""
|
40 |
-
"Dogodila se greška u ispisivanju CSS i JS datoteka. Molimo, provjerite "
|
41 |
-
"administracijska dopuštenja js i css mapa/datoteka."
|
42 |
-
|
43 |
-
#: app/library/responsive-menu/Export.php:43
|
44 |
-
msgid "You can download your exported file by clicking here"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: app/library/responsive-menu/Import.php:17
|
48 |
-
msgid "No Import File Attached"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: app/library/responsive-menu/Import.php:20
|
52 |
-
msgid "Incorrect Import File Format"
|
53 |
-
msgstr ""
|
54 |
-
|
55 |
-
#: app/library/responsive-menu/Import.php:23
|
56 |
-
msgid "Import File Too Large"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#: app/library/responsive-menu/Import.php:26
|
60 |
-
msgid "Import File Not Valid"
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: app/library/responsive-menu/View.php:68
|
64 |
-
#, fuzzy
|
65 |
-
msgid "Search"
|
66 |
-
msgstr "Ukloniti tražilicu"
|
67 |
-
|
68 |
-
#: app/models/AdminModel.php:368
|
69 |
-
#, fuzzy
|
70 |
-
msgid "You have successfully updated the Responsive Menu options"
|
71 |
-
msgstr "Ažuriraj mogućnosti Responsive Menu-a"
|
72 |
-
|
73 |
-
#: app/models/CSSModel.php:24
|
74 |
-
msgid "Unable to create CSS file"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: app/models/FolderModel.php:26
|
78 |
-
msgid "Unable to create data folders"
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#: app/models/FolderModel.php:29
|
82 |
-
msgid "Unable to create CSS folders"
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
#: app/models/FolderModel.php:32
|
86 |
-
msgid "Unable to create JS folders"
|
87 |
-
msgstr ""
|
88 |
-
|
89 |
-
#: app/models/JSModel.php:24
|
90 |
-
msgid "Unable to create JS file"
|
91 |
-
msgstr ""
|
92 |
-
|
93 |
-
#: app/views/admin/page.phtml:202
|
94 |
-
msgid "Version"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#: app/views/admin/page.phtml:211 app/views/admin/page.phtml:1924
|
98 |
-
msgid "Update Responsive Menu Options"
|
99 |
-
msgstr "Ažuriraj mogućnosti Responsive Menu-a"
|
100 |
-
|
101 |
-
#: app/views/admin/page.phtml:215
|
102 |
-
msgid "Responsive Menu Options"
|
103 |
-
msgstr "Mogućnosti Responsive Menu-a"
|
104 |
-
|
105 |
-
#: app/views/admin/page.phtml:215
|
106 |
-
msgid "Go Pro - Upgrade now"
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#: app/views/admin/page.phtml:234
|
110 |
-
#, fuzzy
|
111 |
-
msgid "Meta Tag Check"
|
112 |
-
msgstr "Provjera Viewport Meta Tag-a"
|
113 |
-
|
114 |
-
#: app/views/admin/page.phtml:239
|
115 |
-
#, fuzzy
|
116 |
-
msgid "Recommended Metaport Tag"
|
117 |
-
msgstr "Preporučeno"
|
118 |
-
|
119 |
-
#: app/views/admin/page.phtml:251 app/views/admin/page.phtml:931
|
120 |
-
#: app/views/admin/page.phtml:1329 app/views/admin/page.phtml:1873
|
121 |
-
msgid "Note"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: app/views/admin/page.phtml:252
|
125 |
-
msgid "This is only a reference guide and yours may vary slightly"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: app/views/admin/page.phtml:258
|
129 |
-
msgid "Transient Caching"
|
130 |
-
msgstr ""
|
131 |
-
|
132 |
-
#: app/views/admin/page.phtml:265
|
133 |
-
msgid "Turn on transient caching"
|
134 |
-
msgstr ""
|
135 |
-
|
136 |
-
#: app/views/admin/page.phtml:268
|
137 |
-
#, php-format
|
138 |
-
msgid ""
|
139 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
140 |
-
"this will break active links etc."
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: app/views/admin/page.phtml:283
|
144 |
-
msgid "Shortcode Support"
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
#: app/views/admin/page.phtml:292
|
148 |
-
#, fuzzy
|
149 |
-
msgid "Click to use shortcode"
|
150 |
-
msgstr "Veličina slova za dugme za klik"
|
151 |
-
|
152 |
-
#: app/views/admin/page.phtml:294
|
153 |
-
#, fuzzy
|
154 |
-
msgid ""
|
155 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
156 |
-
msgstr "Označite ovo ako želite ukloniti tražilicu"
|
157 |
-
|
158 |
-
#: app/views/admin/page.phtml:308
|
159 |
-
msgid ""
|
160 |
-
"For a list of available shortcode options with explanations please visit the "
|
161 |
-
"following page:"
|
162 |
-
msgstr ""
|
163 |
-
|
164 |
-
#: app/views/admin/page.phtml:311
|
165 |
-
msgid "Shortcode Options"
|
166 |
-
msgstr ""
|
167 |
-
|
168 |
-
#: app/views/admin/page.phtml:319
|
169 |
-
msgid "Available Shortcode Options/Values"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#: app/views/admin/page.phtml:323 app/views/admin/page.phtml:351
|
173 |
-
msgid "Option"
|
174 |
-
msgstr ""
|
175 |
-
|
176 |
-
#: app/views/admin/page.phtml:324
|
177 |
-
msgid "Values"
|
178 |
-
msgstr ""
|
179 |
-
|
180 |
-
#: app/views/admin/page.phtml:346
|
181 |
-
msgid "Sorry, there are no available options"
|
182 |
-
msgstr ""
|
183 |
-
|
184 |
-
#: app/views/admin/page.phtml:352
|
185 |
-
msgid "Example Value"
|
186 |
-
msgstr ""
|
187 |
-
|
188 |
-
#: app/views/admin/page.phtml:400 app/views/admin/page.phtml:1401
|
189 |
-
#: app/views/admin/page.phtml:1545
|
190 |
-
msgid "e.g"
|
191 |
-
msgstr "npr."
|
192 |
-
|
193 |
-
#: app/views/admin/page.phtml:413
|
194 |
-
msgid "Click Button Settings"
|
195 |
-
msgstr ""
|
196 |
-
|
197 |
-
#: app/views/admin/page.phtml:419
|
198 |
-
msgid "Click Button Title"
|
199 |
-
msgstr ""
|
200 |
-
|
201 |
-
#: app/views/admin/page.phtml:421
|
202 |
-
msgid "This is the title under the 3 lines of the click button"
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
#: app/views/admin/page.phtml:431
|
206 |
-
msgid "Click Button Image"
|
207 |
-
msgstr ""
|
208 |
-
|
209 |
-
#: app/views/admin/page.phtml:433
|
210 |
-
msgid ""
|
211 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
212 |
-
"will be used"
|
213 |
-
msgstr ""
|
214 |
-
|
215 |
-
#: app/views/admin/page.phtml:445 app/views/admin/page.phtml:483
|
216 |
-
#: app/views/admin/page.phtml:685 app/views/admin/page.phtml:901
|
217 |
-
#: app/views/admin/page.phtml:921
|
218 |
-
msgid "Upload Image"
|
219 |
-
msgstr "Dodaj sliku sa svog računala"
|
220 |
-
|
221 |
-
#: app/views/admin/page.phtml:454
|
222 |
-
msgid "Change click menu to an X on click"
|
223 |
-
msgstr ""
|
224 |
-
|
225 |
-
#: app/views/admin/page.phtml:457
|
226 |
-
#, fuzzy
|
227 |
-
msgid "Tick this if you would like the 3 lines to turn into an x once clicked"
|
228 |
-
msgstr ""
|
229 |
-
"Označite ovo ako želite da dugme za izbornik ostane na istom mjestu prilikom "
|
230 |
-
"navigiranja kroz stranicu"
|
231 |
-
|
232 |
-
#: app/views/admin/page.phtml:469
|
233 |
-
msgid "Click Button Image When Clicked"
|
234 |
-
msgstr ""
|
235 |
-
|
236 |
-
#: app/views/admin/page.phtml:471
|
237 |
-
msgid ""
|
238 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
239 |
-
"empty, the 3 lines will be used"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#: app/views/admin/page.phtml:495
|
243 |
-
msgid "Fixed Positioning"
|
244 |
-
msgstr "Fiksno pozicioniranje"
|
245 |
-
|
246 |
-
#: app/views/admin/page.phtml:497
|
247 |
-
msgid ""
|
248 |
-
"Tick this if you would like the click button to remain in the same place "
|
249 |
-
"when scrolling"
|
250 |
-
msgstr ""
|
251 |
-
|
252 |
-
#: app/views/admin/page.phtml:510
|
253 |
-
msgid "Click Trigger"
|
254 |
-
msgstr ""
|
255 |
-
|
256 |
-
#: app/views/admin/page.phtml:512
|
257 |
-
msgid "You can set a custom ID or class for custom triggers here if you wish."
|
258 |
-
msgstr ""
|
259 |
-
|
260 |
-
#: app/views/admin/page.phtml:525
|
261 |
-
#, fuzzy
|
262 |
-
msgid "Click Button Size Settings"
|
263 |
-
msgstr "Veličina slova za dugme za klik"
|
264 |
-
|
265 |
-
#: app/views/admin/page.phtml:531
|
266 |
-
#, fuzzy
|
267 |
-
msgid "Width"
|
268 |
-
msgstr "Širina izbornika"
|
269 |
-
|
270 |
-
#: app/views/admin/page.phtml:533
|
271 |
-
#, fuzzy
|
272 |
-
msgid "This is the width of the individual 3 lines"
|
273 |
-
msgstr "Ovo je boja pozadine dugmeta sa tri vodoravne crte"
|
274 |
-
|
275 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
276 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
277 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
278 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
279 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
280 |
-
#: app/views/admin/page.phtml:1538
|
281 |
-
msgid "px"
|
282 |
-
msgstr "px"
|
283 |
-
|
284 |
-
#: app/views/admin/page.phtml:545
|
285 |
-
#, fuzzy
|
286 |
-
msgid "Height"
|
287 |
-
msgstr "Visina linkova"
|
288 |
-
|
289 |
-
#: app/views/admin/page.phtml:547
|
290 |
-
#, fuzzy
|
291 |
-
msgid "This is the height of the individual 3 lines"
|
292 |
-
msgstr "Ovo je boja pozadine dugmeta sa tri vodoravne crte"
|
293 |
-
|
294 |
-
#: app/views/admin/page.phtml:561
|
295 |
-
msgid "Margin"
|
296 |
-
msgstr ""
|
297 |
-
|
298 |
-
#: app/views/admin/page.phtml:563
|
299 |
-
msgid "This is the margin between the individual 3 lines"
|
300 |
-
msgstr ""
|
301 |
-
|
302 |
-
#: app/views/admin/page.phtml:583
|
303 |
-
msgid "Click Button Location Settings"
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#: app/views/admin/page.phtml:589 app/views/admin/page.phtml:747
|
307 |
-
msgid "Top"
|
308 |
-
msgstr "Vrh"
|
309 |
-
|
310 |
-
#: app/views/admin/page.phtml:591
|
311 |
-
msgid ""
|
312 |
-
"This is the distance from the top of the page in px that the click button "
|
313 |
-
"will be displayed"
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#: app/views/admin/page.phtml:603
|
317 |
-
msgid "Left/Right Distance"
|
318 |
-
msgstr ""
|
319 |
-
|
320 |
-
#: app/views/admin/page.phtml:605
|
321 |
-
msgid ""
|
322 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
323 |
-
"that the menu will be displayed"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#: app/views/admin/page.phtml:619
|
327 |
-
msgid "Left/Right"
|
328 |
-
msgstr ""
|
329 |
-
|
330 |
-
#: app/views/admin/page.phtml:621
|
331 |
-
msgid ""
|
332 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
333 |
-
"or right"
|
334 |
-
msgstr ""
|
335 |
-
|
336 |
-
#: app/views/admin/page.phtml:651
|
337 |
-
msgid "Menu Settings"
|
338 |
-
msgstr "Postavke izbornika"
|
339 |
-
|
340 |
-
#: app/views/admin/page.phtml:660
|
341 |
-
msgid "This is the title at the top of the responsive menu"
|
342 |
-
msgstr "Ovo je naslov na vrhu izbornika"
|
343 |
-
|
344 |
-
#: app/views/admin/page.phtml:671
|
345 |
-
msgid "Menu Image"
|
346 |
-
msgstr "Slika izbornika"
|
347 |
-
|
348 |
-
#: app/views/admin/page.phtml:673
|
349 |
-
msgid ""
|
350 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
351 |
-
"is 32px x 32px"
|
352 |
-
msgstr ""
|
353 |
-
"Ovo je slika koja se nalazi uz naslov izbornika. Preporučena veličina je "
|
354 |
-
"32px x 32px"
|
355 |
-
|
356 |
-
#: app/views/admin/page.phtml:695
|
357 |
-
msgid "Choose Menu To Responsify"
|
358 |
-
msgstr "Odaberite izbornik "
|
359 |
-
|
360 |
-
#: app/views/admin/page.phtml:697
|
361 |
-
msgid "This is the menu that will be used responsively"
|
362 |
-
msgstr "Ovo je izbornik koji će se koristiti na ekranima osjetljivim na dodir"
|
363 |
-
|
364 |
-
#: app/views/admin/page.phtml:717
|
365 |
-
msgid "You haven't set up any site menus yet"
|
366 |
-
msgstr "Za sada još niste postavili niti jedan izbornik na vašoj stranici"
|
367 |
-
|
368 |
-
#: app/views/admin/page.phtml:726
|
369 |
-
msgid "Slide Side"
|
370 |
-
msgstr "Strana klizanja"
|
371 |
-
|
372 |
-
#: app/views/admin/page.phtml:728
|
373 |
-
msgid "This is the side of the screen from which the menu will slide"
|
374 |
-
msgstr "Ovo je strana ekrana od koje če se otvarati izbornik"
|
375 |
-
|
376 |
-
#: app/views/admin/page.phtml:735 app/views/admin/page.phtml:1288
|
377 |
-
#: app/views/admin/page.phtml:1295
|
378 |
-
msgid "Left"
|
379 |
-
msgstr "Lijevo"
|
380 |
-
|
381 |
-
#: app/views/admin/page.phtml:741 app/views/admin/page.phtml:1305
|
382 |
-
msgid "Right"
|
383 |
-
msgstr "Desno"
|
384 |
-
|
385 |
-
#: app/views/admin/page.phtml:753
|
386 |
-
msgid "Bottom"
|
387 |
-
msgstr ""
|
388 |
-
|
389 |
-
#: app/views/admin/page.phtml:766
|
390 |
-
msgid "Choose Theme Location Menu To Responsify"
|
391 |
-
msgstr ""
|
392 |
-
|
393 |
-
#: app/views/admin/page.phtml:768
|
394 |
-
msgid ""
|
395 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
396 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
397 |
-
"like polylang)"
|
398 |
-
msgstr ""
|
399 |
-
|
400 |
-
#: app/views/admin/page.phtml:787
|
401 |
-
msgid "None"
|
402 |
-
msgstr ""
|
403 |
-
|
404 |
-
#: app/views/admin/page.phtml:794
|
405 |
-
msgid "You haven't set up any menus location yet"
|
406 |
-
msgstr ""
|
407 |
-
|
408 |
-
#: app/views/admin/page.phtml:802
|
409 |
-
#, fuzzy
|
410 |
-
msgid "Menu Title Link"
|
411 |
-
msgstr "Boja obruba poveznice za izbornik"
|
412 |
-
|
413 |
-
#: app/views/admin/page.phtml:804
|
414 |
-
#, fuzzy
|
415 |
-
msgid "This is the link location for the title"
|
416 |
-
msgstr "Postavke pozicije"
|
417 |
-
|
418 |
-
#: app/views/admin/page.phtml:814
|
419 |
-
#, fuzzy
|
420 |
-
msgid "Menu Title Link Location"
|
421 |
-
msgstr "Boja obruba poveznice za izbornik"
|
422 |
-
|
423 |
-
#: app/views/admin/page.phtml:816
|
424 |
-
msgid "This is where your title page will be opened once clicked"
|
425 |
-
msgstr ""
|
426 |
-
|
427 |
-
#: app/views/admin/page.phtml:823
|
428 |
-
msgid "New Tab"
|
429 |
-
msgstr ""
|
430 |
-
|
431 |
-
#: app/views/admin/page.phtml:829
|
432 |
-
#, fuzzy
|
433 |
-
msgid "Same Page"
|
434 |
-
msgstr "Pozadinska boja trenutne stranice"
|
435 |
-
|
436 |
-
#: app/views/admin/page.phtml:835
|
437 |
-
#, fuzzy
|
438 |
-
msgid "Parent Page"
|
439 |
-
msgstr "Pozadinska boja trenutne stranice"
|
440 |
-
|
441 |
-
#: app/views/admin/page.phtml:841
|
442 |
-
msgid "Full Window Body"
|
443 |
-
msgstr ""
|
444 |
-
|
445 |
-
#: app/views/admin/page.phtml:852
|
446 |
-
#, fuzzy
|
447 |
-
msgid "Sub Menu Arrow Settings"
|
448 |
-
msgstr "Postavke izbornika"
|
449 |
-
|
450 |
-
#: app/views/admin/page.phtml:858
|
451 |
-
msgid "Active Geometric Shape"
|
452 |
-
msgstr ""
|
453 |
-
|
454 |
-
#: app/views/admin/page.phtml:869
|
455 |
-
msgid "Inactive Geometric Shape"
|
456 |
-
msgstr ""
|
457 |
-
|
458 |
-
#: app/views/admin/page.phtml:882
|
459 |
-
msgid "You can find a list of Geometric HTML shape codes below"
|
460 |
-
msgstr ""
|
461 |
-
|
462 |
-
#: app/views/admin/page.phtml:889
|
463 |
-
#, fuzzy
|
464 |
-
msgid "Active Image"
|
465 |
-
msgstr "Slika izbornika"
|
466 |
-
|
467 |
-
#: app/views/admin/page.phtml:909
|
468 |
-
#, fuzzy
|
469 |
-
msgid "Inactive Image"
|
470 |
-
msgstr "Slika izbornika"
|
471 |
-
|
472 |
-
#: app/views/admin/page.phtml:932
|
473 |
-
msgid ""
|
474 |
-
"Images have preference over shapes, to use HTML shapes please leave the "
|
475 |
-
"image field blank"
|
476 |
-
msgstr ""
|
477 |
-
|
478 |
-
#: app/views/admin/page.phtml:939
|
479 |
-
msgid "Colour Settings"
|
480 |
-
msgstr "Postavke boja"
|
481 |
-
|
482 |
-
#: app/views/admin/page.phtml:941
|
483 |
-
#, fuzzy
|
484 |
-
msgid "Background Colours"
|
485 |
-
msgstr "Pozadinska boja trenutne stranice"
|
486 |
-
|
487 |
-
#: app/views/admin/page.phtml:945
|
488 |
-
#, fuzzy
|
489 |
-
msgid "Click Button"
|
490 |
-
msgstr "Veličina slova za dugme za klik"
|
491 |
-
|
492 |
-
#: app/views/admin/page.phtml:953
|
493 |
-
#, fuzzy
|
494 |
-
msgid "Click Button Line & Text Colour"
|
495 |
-
msgstr "Boja crta i teksta izbornika"
|
496 |
-
|
497 |
-
#: app/views/admin/page.phtml:955
|
498 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
499 |
-
msgstr ""
|
500 |
-
|
501 |
-
#: app/views/admin/page.phtml:968
|
502 |
-
#, fuzzy
|
503 |
-
msgid "Click Button Background Colour"
|
504 |
-
msgstr "Boja pozadine dugmeta za izbornik"
|
505 |
-
|
506 |
-
#: app/views/admin/page.phtml:970
|
507 |
-
msgid "This is the background colour of the 3 lines container"
|
508 |
-
msgstr "Ovo je boja pozadine dugmeta sa tri vodoravne crte"
|
509 |
-
|
510 |
-
#: app/views/admin/page.phtml:985
|
511 |
-
#, fuzzy
|
512 |
-
msgid "Click Button Background Transparent"
|
513 |
-
msgstr "Pozadina izbornika transparentna"
|
514 |
-
|
515 |
-
#: app/views/admin/page.phtml:987
|
516 |
-
#, fuzzy
|
517 |
-
msgid ""
|
518 |
-
"Tick this if you would like a transparent background on the click button"
|
519 |
-
msgstr "Označite ovo ako biste željeli transparentnu pozadinu"
|
520 |
-
|
521 |
-
#: app/views/admin/page.phtml:1007
|
522 |
-
#, fuzzy
|
523 |
-
msgid "Main Menu"
|
524 |
-
msgstr "Naslov izbornika"
|
525 |
-
|
526 |
-
#: app/views/admin/page.phtml:1015
|
527 |
-
msgid "Menu Background Colour"
|
528 |
-
msgstr "Boja pozadine otvorenog izbornika "
|
529 |
-
|
530 |
-
#: app/views/admin/page.phtml:1017
|
531 |
-
msgid "This is the background colour of the expanded menu"
|
532 |
-
msgstr "Ovo je boja pozadine otvorenog izbornika "
|
533 |
-
|
534 |
-
#: app/views/admin/page.phtml:1030
|
535 |
-
msgid "Menu Background Hover Colour"
|
536 |
-
msgstr "Boja pozadine izbornika tokom hovera"
|
537 |
-
|
538 |
-
#: app/views/admin/page.phtml:1032
|
539 |
-
msgid "This is the hover background colour of the expanded menu"
|
540 |
-
msgstr ""
|
541 |
-
"Ovo je boja pozadine otvorenog izbornika u trenutku lebdjenja mišem (hover)"
|
542 |
-
|
543 |
-
#: app/views/admin/page.phtml:1047
|
544 |
-
msgid "Menu Link Border Colour"
|
545 |
-
msgstr "Boja obruba poveznice za izbornik"
|
546 |
-
|
547 |
-
#: app/views/admin/page.phtml:1049
|
548 |
-
#, fuzzy
|
549 |
-
msgid "This is the border colour of the menu links"
|
550 |
-
msgstr "Boja obruba poveznice za izbornik"
|
551 |
-
|
552 |
-
#: app/views/admin/page.phtml:1062
|
553 |
-
msgid "Title Background Colour"
|
554 |
-
msgstr "Pozadinska boja naslova"
|
555 |
-
|
556 |
-
#: app/views/admin/page.phtml:1064
|
557 |
-
#, fuzzy
|
558 |
-
msgid "This is the background colour of the menu title"
|
559 |
-
msgstr "Ovo je pozadinska boja naslova izbornika kada je otvoren"
|
560 |
-
|
561 |
-
#: app/views/admin/page.phtml:1079
|
562 |
-
#, fuzzy
|
563 |
-
msgid "Current Page Link Background Colour"
|
564 |
-
msgstr "Pozadinska boja trenutne stranice"
|
565 |
-
|
566 |
-
#: app/views/admin/page.phtml:1081
|
567 |
-
#, fuzzy
|
568 |
-
msgid "This is the background colour of the current page link"
|
569 |
-
msgstr "Pozadinska boja trenutne stranice"
|
570 |
-
|
571 |
-
#: app/views/admin/page.phtml:1094
|
572 |
-
msgid "Current Page Link Background Hover Colour"
|
573 |
-
msgstr ""
|
574 |
-
|
575 |
-
#: app/views/admin/page.phtml:1096
|
576 |
-
msgid "This is the hover background colour of the current page link"
|
577 |
-
msgstr ""
|
578 |
-
|
579 |
-
#: app/views/admin/page.phtml:1110
|
580 |
-
#, fuzzy
|
581 |
-
msgid "Text Colours"
|
582 |
-
msgstr "Poravnanje teksta"
|
583 |
-
|
584 |
-
#: app/views/admin/page.phtml:1119
|
585 |
-
msgid "Menu Title Colour"
|
586 |
-
msgstr "Boja naslova izbornika"
|
587 |
-
|
588 |
-
#: app/views/admin/page.phtml:1121
|
589 |
-
#, fuzzy
|
590 |
-
msgid "This is the text colour of the menu title"
|
591 |
-
msgstr "Ovo je boja naslova otvorenog izbornika"
|
592 |
-
|
593 |
-
#: app/views/admin/page.phtml:1134
|
594 |
-
msgid "Menu Title Hover Colour"
|
595 |
-
msgstr "Boja naslova izbornika tokom hovera"
|
596 |
-
|
597 |
-
#: app/views/admin/page.phtml:1136
|
598 |
-
#, fuzzy
|
599 |
-
msgid "This is the hover colour of the menu title"
|
600 |
-
msgstr "Boja naslova izbornika tokom hovera"
|
601 |
-
|
602 |
-
#: app/views/admin/page.phtml:1151
|
603 |
-
#, fuzzy
|
604 |
-
msgid "Menu Link Colour"
|
605 |
-
msgstr "Boja obruba poveznice za izbornik"
|
606 |
-
|
607 |
-
#: app/views/admin/page.phtml:1153
|
608 |
-
#, fuzzy
|
609 |
-
msgid "This is the text colour of the menu links"
|
610 |
-
msgstr "Ovo je boja teksta poveznica u otvorenom izborniku"
|
611 |
-
|
612 |
-
#: app/views/admin/page.phtml:1166
|
613 |
-
#, fuzzy
|
614 |
-
msgid "Menu Link Hover Colour"
|
615 |
-
msgstr "Boja obruba poveznice za izbornik"
|
616 |
-
|
617 |
-
#: app/views/admin/page.phtml:1168
|
618 |
-
#, fuzzy
|
619 |
-
msgid "This is the text hover colour of the menu links"
|
620 |
-
msgstr "Ovo je boja teksta poveznica u trenutku lebdjenja mišem (hover)"
|
621 |
-
|
622 |
-
#: app/views/admin/page.phtml:1184
|
623 |
-
#, fuzzy
|
624 |
-
msgid "Current Page Link Colour"
|
625 |
-
msgstr "Ovo je pozadinska boja trenutne stranice"
|
626 |
-
|
627 |
-
#: app/views/admin/page.phtml:1186
|
628 |
-
#, fuzzy
|
629 |
-
msgid "This is the text colour of the current page link"
|
630 |
-
msgstr "Boja teksta trenutne stranice"
|
631 |
-
|
632 |
-
#: app/views/admin/page.phtml:1199
|
633 |
-
msgid "Current Page Link Hover Colour"
|
634 |
-
msgstr ""
|
635 |
-
|
636 |
-
#: app/views/admin/page.phtml:1201
|
637 |
-
msgid "This is the text hover colour of the current page link"
|
638 |
-
msgstr ""
|
639 |
-
|
640 |
-
#: app/views/admin/page.phtml:1218
|
641 |
-
msgid "Style Settings"
|
642 |
-
msgstr "Postavke stila"
|
643 |
-
|
644 |
-
#: app/views/admin/page.phtml:1225
|
645 |
-
msgid "Font"
|
646 |
-
msgstr "Vrsta slova"
|
647 |
-
|
648 |
-
#: app/views/admin/page.phtml:1227
|
649 |
-
msgid "Enter a font name below, if empty your default site font will be used"
|
650 |
-
msgstr ""
|
651 |
-
"Unesite ime vrste slova, ako ostavite prazno, koristit će se zadani font "
|
652 |
-
"vaše web-stranice"
|
653 |
-
|
654 |
-
#: app/views/admin/page.phtml:1238
|
655 |
-
msgid "Font Size"
|
656 |
-
msgstr "Veličina slova"
|
657 |
-
|
658 |
-
#: app/views/admin/page.phtml:1240
|
659 |
-
msgid "Enter a font size in pixels below"
|
660 |
-
msgstr "Unesite veličinu slova ispod (u pikselima)"
|
661 |
-
|
662 |
-
#: app/views/admin/page.phtml:1240 app/views/admin/page.phtml:1257
|
663 |
-
#: app/views/admin/page.phtml:1271 app/views/admin/page.phtml:1288
|
664 |
-
#: app/views/admin/page.phtml:1315 app/views/admin/page.phtml:1417
|
665 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
666 |
-
msgid "default"
|
667 |
-
msgstr "Zadano"
|
668 |
-
|
669 |
-
#: app/views/admin/page.phtml:1255
|
670 |
-
msgid "Click Button Font Size"
|
671 |
-
msgstr "Veličina slova za dugme za klik"
|
672 |
-
|
673 |
-
#: app/views/admin/page.phtml:1257
|
674 |
-
msgid "Enter a click button font size in pixels below"
|
675 |
-
msgstr "Unestie veličinu slova za dugme za klik ispod (u pikselima)"
|
676 |
-
|
677 |
-
#: app/views/admin/page.phtml:1269
|
678 |
-
msgid "Title Font Size"
|
679 |
-
msgstr "Veličina slova naslova"
|
680 |
-
|
681 |
-
#: app/views/admin/page.phtml:1271
|
682 |
-
msgid "Enter a title font size in pixels below"
|
683 |
-
msgstr "Unesite veličinu slova naslova ispod (u pikselima)"
|
684 |
-
|
685 |
-
#: app/views/admin/page.phtml:1286
|
686 |
-
msgid "Text Alignment"
|
687 |
-
msgstr "Poravnanje teksta"
|
688 |
-
|
689 |
-
#: app/views/admin/page.phtml:1288
|
690 |
-
msgid "Enter a text alignment option below"
|
691 |
-
msgstr "Unesite poravnanje teksta ispod"
|
692 |
-
|
693 |
-
#: app/views/admin/page.phtml:1300
|
694 |
-
msgid "Centre"
|
695 |
-
msgstr "Centar"
|
696 |
-
|
697 |
-
#: app/views/admin/page.phtml:1313
|
698 |
-
msgid "Links Height"
|
699 |
-
msgstr "Visina linkova"
|
700 |
-
|
701 |
-
#: app/views/admin/page.phtml:1315
|
702 |
-
msgid "Enter a link height size in pixels below"
|
703 |
-
msgstr "Unesite visinu linka u pikselima ispod"
|
704 |
-
|
705 |
-
#: app/views/admin/page.phtml:1330
|
706 |
-
msgid ""
|
707 |
-
"Setting the below two values to the same number will give you a fixed width "
|
708 |
-
"effect"
|
709 |
-
msgstr ""
|
710 |
-
|
711 |
-
#: app/views/admin/page.phtml:1340
|
712 |
-
#, fuzzy
|
713 |
-
msgid "Minimum Width"
|
714 |
-
msgstr "Širina izbornika"
|
715 |
-
|
716 |
-
#: app/views/admin/page.phtml:1342
|
717 |
-
#, fuzzy
|
718 |
-
msgid "Enter a minimum menu width size in pixels below"
|
719 |
-
msgstr "Unesite visinu linka u pikselima ispod"
|
720 |
-
|
721 |
-
#: app/views/admin/page.phtml:1354
|
722 |
-
#, fuzzy
|
723 |
-
msgid "Maximum Width"
|
724 |
-
msgstr "Širina izbornika"
|
725 |
-
|
726 |
-
#: app/views/admin/page.phtml:1356
|
727 |
-
#, fuzzy
|
728 |
-
msgid "Enter a maximum menu width size in pixels below"
|
729 |
-
msgstr "Unesite visinu linka u pikselima ispod"
|
730 |
-
|
731 |
-
#: app/views/admin/page.phtml:1371
|
732 |
-
msgid "Animation Settings"
|
733 |
-
msgstr "Postavke animacije"
|
734 |
-
|
735 |
-
#: app/views/admin/page.phtml:1377
|
736 |
-
msgid "Slide Animation"
|
737 |
-
msgstr "Animacija klizanja"
|
738 |
-
|
739 |
-
#: app/views/admin/page.phtml:1379
|
740 |
-
msgid "Choose the type of animation applied to the menu"
|
741 |
-
msgstr "Odberite vrstu animacije koja se primjenjuje na izbornik"
|
742 |
-
|
743 |
-
#: app/views/admin/page.phtml:1386
|
744 |
-
msgid "Overlay"
|
745 |
-
msgstr "Overlay"
|
746 |
-
|
747 |
-
#: app/views/admin/page.phtml:1391
|
748 |
-
msgid "Push"
|
749 |
-
msgstr "Stisnuti"
|
750 |
-
|
751 |
-
#: app/views/admin/page.phtml:1399
|
752 |
-
msgid "Page Wrappers CSS"
|
753 |
-
msgstr "CSS Page wrappera"
|
754 |
-
|
755 |
-
#: app/views/admin/page.phtml:1401
|
756 |
-
msgid ""
|
757 |
-
"This is the CSS of the wrapper you want to push when using the push animation"
|
758 |
-
msgstr ""
|
759 |
-
"Ovo je CSS wrapper-a kojeg želite stisnuti kada koristite animaciju stiskanja"
|
760 |
-
|
761 |
-
#: app/views/admin/page.phtml:1415
|
762 |
-
msgid "Animation Speed"
|
763 |
-
msgstr "Brzina animacije"
|
764 |
-
|
765 |
-
#: app/views/admin/page.phtml:1417
|
766 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
767 |
-
msgstr "Unesite brzinu klizne animacije ispod (u sekundama)"
|
768 |
-
|
769 |
-
#: app/views/admin/page.phtml:1424 app/views/admin/page.phtml:1438
|
770 |
-
msgid "seconds"
|
771 |
-
msgstr "sekunda"
|
772 |
-
|
773 |
-
#: app/views/admin/page.phtml:1429
|
774 |
-
msgid "Transition Speed"
|
775 |
-
msgstr "Brzina prijelaza"
|
776 |
-
|
777 |
-
#: app/views/admin/page.phtml:1431
|
778 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
779 |
-
msgstr ""
|
780 |
-
"Unesite brzinu efekta prijelaza tokom lebdjenja (hover-a) ispod (u sekundama)"
|
781 |
-
|
782 |
-
#: app/views/admin/page.phtml:1445
|
783 |
-
#, fuzzy
|
784 |
-
msgid "Accordion Animation For Sub-Menus"
|
785 |
-
msgstr "Automatsko otvaranje podstavki"
|
786 |
-
|
787 |
-
#: app/views/admin/page.phtml:1447
|
788 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
789 |
-
msgstr ""
|
790 |
-
|
791 |
-
#: app/views/admin/page.phtml:1460
|
792 |
-
msgid "Push button with Animation"
|
793 |
-
msgstr ""
|
794 |
-
|
795 |
-
#: app/views/admin/page.phtml:1462
|
796 |
-
msgid "Tick to enable the click button to be pushed with animation"
|
797 |
-
msgstr ""
|
798 |
-
|
799 |
-
#: app/views/admin/page.phtml:1480
|
800 |
-
#, fuzzy
|
801 |
-
msgid "Additional HTML Content Settings"
|
802 |
-
msgstr "Postavke animacije"
|
803 |
-
|
804 |
-
#: app/views/admin/page.phtml:1487
|
805 |
-
msgid "Additional HTML Content"
|
806 |
-
msgstr ""
|
807 |
-
|
808 |
-
#: app/views/admin/page.phtml:1489
|
809 |
-
msgid ""
|
810 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
811 |
-
"banners etc. (accepts shortcodes)"
|
812 |
-
msgstr ""
|
813 |
-
|
814 |
-
#: app/views/admin/page.phtml:1496
|
815 |
-
msgid "Additional HTML Content Positioning"
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: app/views/admin/page.phtml:1498
|
819 |
-
#, fuzzy
|
820 |
-
msgid "Select where you would like the additional HTML content to appear"
|
821 |
-
msgstr "Označite ovo ako želite ukloniti tražilicu"
|
822 |
-
|
823 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
824 |
-
#, fuzzy
|
825 |
-
msgid "Above Menu Links"
|
826 |
-
msgstr "Ovo je boja teksta poveznica u otvorenom izborniku"
|
827 |
-
|
828 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
829 |
-
#, fuzzy
|
830 |
-
msgid "Below Menu Links"
|
831 |
-
msgstr "Ovo je boja teksta poveznica u otvorenom izborniku"
|
832 |
-
|
833 |
-
#: app/views/admin/page.phtml:1523
|
834 |
-
msgid "Menu Advanced Settings"
|
835 |
-
msgstr ""
|
836 |
-
|
837 |
-
#: app/views/admin/page.phtml:1529
|
838 |
-
msgid "Menu Breakpoint"
|
839 |
-
msgstr "Prijelazna točka izbornika"
|
840 |
-
|
841 |
-
#: app/views/admin/page.phtml:1531
|
842 |
-
msgid ""
|
843 |
-
"This is the point where the responsive menu will be visible in px width of "
|
844 |
-
"the browser"
|
845 |
-
msgstr ""
|
846 |
-
"Ovo je točka od koje će se Responsive Menu pojavljivati u web-preglednicima "
|
847 |
-
"(u pikselima)"
|
848 |
-
|
849 |
-
#: app/views/admin/page.phtml:1543
|
850 |
-
msgid "CSS of Menu To Hide"
|
851 |
-
msgstr "CSS izbornika za sakriti"
|
852 |
-
|
853 |
-
#: app/views/admin/page.phtml:1545
|
854 |
-
msgid ""
|
855 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
856 |
-
msgstr ""
|
857 |
-
"Ovo je CSS izbornika kojeg želite sakriti jednom kada se izbornik pojavi"
|
858 |
-
|
859 |
-
#: app/views/admin/page.phtml:1559
|
860 |
-
msgid "Menu Depth"
|
861 |
-
msgstr "Dubina izbornika"
|
862 |
-
|
863 |
-
#: app/views/admin/page.phtml:1561
|
864 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
865 |
-
msgstr "Ovo je razina dubine vidljivosti podstavki vašeg izbornika (najviše"
|
866 |
-
|
867 |
-
#: app/views/admin/page.phtml:1580
|
868 |
-
msgid "Menu Width"
|
869 |
-
msgstr "Širina izbornika"
|
870 |
-
|
871 |
-
#: app/views/admin/page.phtml:1582
|
872 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
873 |
-
msgstr "Ovo je širina koju izbornik zauzima preko ekrana kada se otvori"
|
874 |
-
|
875 |
-
#: app/views/admin/page.phtml:1603
|
876 |
-
msgid "Remove Search Box"
|
877 |
-
msgstr "Ukloniti tražilicu"
|
878 |
-
|
879 |
-
#: app/views/admin/page.phtml:1605
|
880 |
-
msgid "Tick if you would like to remove the search box"
|
881 |
-
msgstr "Označite ovo ako želite ukloniti tražilicu"
|
882 |
-
|
883 |
-
#: app/views/admin/page.phtml:1618
|
884 |
-
#, fuzzy
|
885 |
-
msgid "Search Box Positioning"
|
886 |
-
msgstr "Ukloniti tražilicu"
|
887 |
-
|
888 |
-
#: app/views/admin/page.phtml:1620
|
889 |
-
#, fuzzy
|
890 |
-
msgid "Select where you would like the search box to appear"
|
891 |
-
msgstr "Označite ovo ako želite ukloniti tražilicu"
|
892 |
-
|
893 |
-
#: app/views/admin/page.phtml:1642
|
894 |
-
#, fuzzy
|
895 |
-
msgid "Click to Close Menu on Link Click"
|
896 |
-
msgstr "Veličina slova za dugme za klik"
|
897 |
-
|
898 |
-
#: app/views/admin/page.phtml:1644
|
899 |
-
#, fuzzy
|
900 |
-
msgid ""
|
901 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
902 |
-
"single page sites"
|
903 |
-
msgstr ""
|
904 |
-
"Označite ovo ako želite da dugme za izbornik ostane na istom mjestu prilikom "
|
905 |
-
"navigiranja kroz stranicu"
|
906 |
-
|
907 |
-
#: app/views/admin/page.phtml:1657
|
908 |
-
#, fuzzy
|
909 |
-
msgid "Auto Expand Current Parent Items"
|
910 |
-
msgstr "Automatsko otvaranje podstavki"
|
911 |
-
|
912 |
-
#: app/views/admin/page.phtml:1659
|
913 |
-
#, fuzzy
|
914 |
-
msgid ""
|
915 |
-
"Tick if you would like to make the current pages children expanded "
|
916 |
-
"automatically"
|
917 |
-
msgstr "Označite ako želite da se podstavke izbornika automatski otvaraju"
|
918 |
-
|
919 |
-
#: app/views/admin/page.phtml:1673
|
920 |
-
msgid "Auto Expand Sub-Menus"
|
921 |
-
msgstr "Automatsko otvaranje podstavki"
|
922 |
-
|
923 |
-
#: app/views/admin/page.phtml:1675
|
924 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
925 |
-
msgstr "Označite ako želite da se podstavke izbornika automatski otvaraju"
|
926 |
-
|
927 |
-
#: app/views/admin/page.phtml:1688
|
928 |
-
msgid "Ignore Parent Clicks"
|
929 |
-
msgstr ""
|
930 |
-
|
931 |
-
#: app/views/admin/page.phtml:1690
|
932 |
-
#, fuzzy
|
933 |
-
msgid "Tick if you would like to ignore clicks on parent links"
|
934 |
-
msgstr "Označite ovo ako želite uključiti vašu jQuery skriptu u footer"
|
935 |
-
|
936 |
-
#: app/views/admin/page.phtml:1704
|
937 |
-
#, fuzzy
|
938 |
-
msgid "Click to Close Menu on Page Click"
|
939 |
-
msgstr "Veličina slova za dugme za klik"
|
940 |
-
|
941 |
-
#: app/views/admin/page.phtml:1706
|
942 |
-
#, fuzzy
|
943 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
944 |
-
msgstr ""
|
945 |
-
"Označite ovo ako želite da dugme za izbornik ostane na istom mjestu prilikom "
|
946 |
-
"navigiranja kroz stranicu"
|
947 |
-
|
948 |
-
#: app/views/admin/page.phtml:1727
|
949 |
-
msgid "Technical Settings"
|
950 |
-
msgstr ""
|
951 |
-
|
952 |
-
#: app/views/admin/page.phtml:1733
|
953 |
-
msgid "Minify output"
|
954 |
-
msgstr ""
|
955 |
-
|
956 |
-
#: app/views/admin/page.phtml:1735
|
957 |
-
#, fuzzy
|
958 |
-
msgid ""
|
959 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
960 |
-
"file size"
|
961 |
-
msgstr "Označite ovo ako želite uključiti vašu jQuery skriptu u footer"
|
962 |
-
|
963 |
-
#: app/views/admin/page.phtml:1748
|
964 |
-
msgid "Include script in footer"
|
965 |
-
msgstr "Uključiti skriptu u footer"
|
966 |
-
|
967 |
-
#: app/views/admin/page.phtml:1750
|
968 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
969 |
-
msgstr "Označite ovo ako želite uključiti vašu jQuery skriptu u footer"
|
970 |
-
|
971 |
-
#: app/views/admin/page.phtml:1764
|
972 |
-
msgid "Include CSS/JS as external files"
|
973 |
-
msgstr "Uključiti CSS/JS kao vanjske datoteke"
|
974 |
-
|
975 |
-
#: app/views/admin/page.phtml:1766
|
976 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
977 |
-
msgstr "Označite ovo ako želite uključiti CSS i jQuery kao vanjske datoteke"
|
978 |
-
|
979 |
-
#: app/views/admin/page.phtml:1777
|
980 |
-
msgid "Remove CSS !important tags"
|
981 |
-
msgstr ""
|
982 |
-
|
983 |
-
#: app/views/admin/page.phtml:1780
|
984 |
-
#, fuzzy
|
985 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
986 |
-
msgstr "Označite ovo ako želite ukloniti tražilicu"
|
987 |
-
|
988 |
-
#: app/views/admin/page.phtml:1781
|
989 |
-
msgid ""
|
990 |
-
"Ticking this will make it easier to over-ride the styles but may make the "
|
991 |
-
"default settings not display well"
|
992 |
-
msgstr ""
|
993 |
-
|
994 |
-
#: app/views/admin/page.phtml:1795
|
995 |
-
msgid "Custom Walker"
|
996 |
-
msgstr ""
|
997 |
-
|
998 |
-
#: app/views/admin/page.phtml:1803
|
999 |
-
msgid "Specify you own Walker for the menu (wp_nav_menu parameter)"
|
1000 |
-
msgstr ""
|
1001 |
-
|
1002 |
-
#: app/views/admin/page.phtml:1804
|
1003 |
-
msgid ""
|
1004 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
1005 |
-
"alone"
|
1006 |
-
msgstr ""
|
1007 |
-
|
1008 |
-
#: app/views/admin/page.phtml:1833
|
1009 |
-
msgid "Import File"
|
1010 |
-
msgstr ""
|
1011 |
-
|
1012 |
-
#: app/views/admin/page.phtml:1840
|
1013 |
-
msgid "Import Options From XML"
|
1014 |
-
msgstr ""
|
1015 |
-
|
1016 |
-
#: app/views/admin/page.phtml:1859
|
1017 |
-
msgid "Export Current Options"
|
1018 |
-
msgstr ""
|
1019 |
-
|
1020 |
-
#: app/views/admin/page.phtml:1874
|
1021 |
-
msgid ""
|
1022 |
-
"Please be warned this will reset all your current settings, please export "
|
1023 |
-
"your current files first"
|
1024 |
-
msgstr ""
|
1025 |
-
|
1026 |
-
#: app/views/admin/page.phtml:1880
|
1027 |
-
msgid "Reset ALL Current Options"
|
1028 |
-
msgstr ""
|
1029 |
-
|
1030 |
-
#: app/views/admin/page.phtml:1895 app/views/admin/page.phtml:1908
|
1031 |
-
msgid ""
|
1032 |
-
"This feature is only available in the pro version, please click below to "
|
1033 |
-
"upgrade"
|
1034 |
-
msgstr ""
|
1035 |
-
|
1036 |
-
#: app/views/admin/page.phtml:1898 app/views/admin/page.phtml:1911
|
1037 |
-
msgid "Upgrade now"
|
1038 |
-
msgstr ""
|
1039 |
-
|
1040 |
-
#~ msgid "Viewport Meta Tag Check"
|
1041 |
-
#~ msgstr "Provjera Viewport Meta Tag-a"
|
1042 |
-
|
1043 |
-
#~ msgid "Below Viewport Meta Tag Found"
|
1044 |
-
#~ msgstr "Viewport Meta Tag pronađen ispod"
|
1045 |
-
|
1046 |
-
#~ msgid "Viewport Meta Tag Not Found"
|
1047 |
-
#~ msgstr "Viewport Meta Tag nije pronađen"
|
1048 |
-
|
1049 |
-
#~ msgid ""
|
1050 |
-
#~ "This is the distance from the right of the page in % that the menu will "
|
1051 |
-
#~ "be displayed"
|
1052 |
-
#~ msgstr ""
|
1053 |
-
#~ "Ovo je udaljenost od desnog ruba stranice u postotcima po kojem će se "
|
1054 |
-
#~ "ravnati izbornik"
|
1055 |
-
|
1056 |
-
#~ msgid ""
|
1057 |
-
#~ "Warning: The Push Animation requires you to place the following meta tag "
|
1058 |
-
#~ "in your site header"
|
1059 |
-
#~ msgstr ""
|
1060 |
-
#~ "Upozorenje: animacija stiskanja od vas zahtjeva da sljedeći meta tag "
|
1061 |
-
#~ "smjestite u header vašeg site-a"
|
1062 |
-
|
1063 |
-
#, fuzzy
|
1064 |
-
#~ msgid "Export Options"
|
1065 |
-
#~ msgstr "Dogodila se greška u ažuriranju mogućnosti dodatka"
|
1066 |
-
|
1067 |
-
#, fuzzy
|
1068 |
-
#~ msgid "Import Options"
|
1069 |
-
#~ msgstr "Dogodila se greška u ažuriranju mogućnosti dodatka"
|
1070 |
-
|
1071 |
-
#~ msgid "Menu Button Title"
|
1072 |
-
#~ msgstr "Naslov dugmeta za izbornik"
|
1073 |
-
|
1074 |
-
#~ msgid "This is the title under the 3 lines of the menu button"
|
1075 |
-
#~ msgstr "Ovo je naslov ispod tri linije dugmeta za izbornik"
|
1076 |
-
|
1077 |
-
#, fuzzy
|
1078 |
-
#~ msgid "Click Menu Image"
|
1079 |
-
#~ msgstr "Slika izbornika"
|
1080 |
-
|
1081 |
-
#, fuzzy
|
1082 |
-
#~ msgid "Click Menu Image When Clicked"
|
1083 |
-
#~ msgstr "Slika izbornika"
|
1084 |
-
|
1085 |
-
#~ msgid "Location Settings"
|
1086 |
-
#~ msgstr "Postavke pozicije"
|
1087 |
-
|
1088 |
-
#~ msgid ""
|
1089 |
-
#~ "This is the distance from the top of the page in px that the menu will be "
|
1090 |
-
#~ "displayed"
|
1091 |
-
#~ msgstr "Ovo je udaljenost od vrha stranice po kojem će se ravnati izbornik"
|
1092 |
-
|
1093 |
-
#~ msgid "This is the colour of the 3 lines and text for the menu button"
|
1094 |
-
#~ msgstr "Ovo je boja tri crte i teksta dugmeta za izbornik"
|
1095 |
-
|
1096 |
-
#~ msgid ""
|
1097 |
-
#~ "Tick this if you would like the menu button to remain in the same place "
|
1098 |
-
#~ "when scrolling"
|
1099 |
-
#~ msgstr ""
|
1100 |
-
#~ "Označite ovo ako želite da dugme za izbornik ostane na istom mjestu "
|
1101 |
-
#~ "prilikom navigiranja kroz stranicu"
|
1102 |
-
|
1103 |
-
#, fuzzy
|
1104 |
-
#~ msgid "Change click menu to an x on click"
|
1105 |
-
#~ msgstr "Veličina slova za dugme za klik"
|
1106 |
-
|
1107 |
-
#, fuzzy
|
1108 |
-
#~ msgid "3 Line Size Settings"
|
1109 |
-
#~ msgstr "Postavke pozicije"
|
1110 |
-
|
1111 |
-
#, fuzzy
|
1112 |
-
#~ msgid "Click Menu"
|
1113 |
-
#~ msgstr "Veličina slova za dugme za klik"
|
1114 |
-
|
1115 |
-
#~ msgid "Menu Text Hover Colour"
|
1116 |
-
#~ msgstr "Boja teksta izbornika tokom hovera"
|
1117 |
-
|
1118 |
-
#~ msgid "Initial Checks"
|
1119 |
-
#~ msgstr "Inicijalne provjere"
|
1120 |
-
|
1121 |
-
#~ msgid ""
|
1122 |
-
#~ "Your Responsive Menu Options and CSS/JS files have been updated "
|
1123 |
-
#~ "successfully"
|
1124 |
-
#~ msgstr ""
|
1125 |
-
#~ "Vaše mogućnosti Responsive Menu-a i CSS/JS datoteke su uspješno ažurirane"
|
1126 |
-
|
1127 |
-
#~ msgid "Your Responsive Menu Options have been updated"
|
1128 |
-
#~ msgstr "Vaše postavke Responsive Menu-a su ažurirane"
|
1129 |
-
|
1130 |
-
#~ msgid "There was an error updating the plugin options"
|
1131 |
-
#~ msgstr "Dogodila se greška u ažuriranju mogućnosti dodatka"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
translations/responsive-menu-nl_NL.mo
DELETED
Binary file
|
translations/responsive-menu-nl_NL.po
DELETED
@@ -1,1089 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu WordPress\n"
|
4 |
-
"POT-Creation-Date: 2015-08-19 21:38+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-08-19 21:38+0100\n"
|
6 |
-
"Last-Translator: ResponsiveMenu <support@responsive.menu>\n"
|
7 |
-
"Language-Team: Carlo van der Pluijm <info@quinex.nl>\n"
|
8 |
-
"Language: nl\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.4\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: app\n"
|
17 |
-
|
18 |
-
#: app/config.php:84 app/views/admin/page.phtml:658
|
19 |
-
msgid "Menu Title"
|
20 |
-
msgstr "Menu titel"
|
21 |
-
|
22 |
-
#: app/controllers/AdminController.php:56
|
23 |
-
#: app/controllers/AdminController.php:57
|
24 |
-
msgid "Responsive Menu"
|
25 |
-
msgstr "Responsive menu"
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
msgid "Settings"
|
29 |
-
msgstr "Instellingen"
|
30 |
-
|
31 |
-
#: app/controllers/GlobalController.php:57
|
32 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: app/library/responsive-menu/Export.php:23
|
36 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
37 |
-
msgstr "Kon geen export bestand maken, controleer plugin folder permissies"
|
38 |
-
|
39 |
-
#: app/library/responsive-menu/Export.php:43
|
40 |
-
msgid "You can download your exported file by clicking here"
|
41 |
-
msgstr "Je kunt het export bestand hier downloaden"
|
42 |
-
|
43 |
-
#: app/library/responsive-menu/Import.php:17
|
44 |
-
msgid "No Import File Attached"
|
45 |
-
msgstr "Geen import bestand bijgevoegd"
|
46 |
-
|
47 |
-
#: app/library/responsive-menu/Import.php:20
|
48 |
-
msgid "Incorrect Import File Format"
|
49 |
-
msgstr "Onjuist import bestandsformaat"
|
50 |
-
|
51 |
-
#: app/library/responsive-menu/Import.php:23
|
52 |
-
msgid "Import File Too Large"
|
53 |
-
msgstr "Import bestand te groot"
|
54 |
-
|
55 |
-
#: app/library/responsive-menu/Import.php:26
|
56 |
-
msgid "Import File Not Valid"
|
57 |
-
msgstr "Import bestand niet geldig"
|
58 |
-
|
59 |
-
#: app/library/responsive-menu/View.php:68
|
60 |
-
msgid "Search"
|
61 |
-
msgstr "Zoeken"
|
62 |
-
|
63 |
-
#: app/models/AdminModel.php:368
|
64 |
-
msgid "You have successfully updated the Responsive Menu options"
|
65 |
-
msgstr "De responsive menu opties zijn met succes bijgewerkt"
|
66 |
-
|
67 |
-
#: app/models/CSSModel.php:24
|
68 |
-
msgid "Unable to create CSS file"
|
69 |
-
msgstr "CSS bestand aanmaken niet mogelijk"
|
70 |
-
|
71 |
-
#: app/models/FolderModel.php:26
|
72 |
-
msgid "Unable to create data folders"
|
73 |
-
msgstr "Data folders maken niet mogelijk"
|
74 |
-
|
75 |
-
#: app/models/FolderModel.php:29
|
76 |
-
msgid "Unable to create CSS folders"
|
77 |
-
msgstr "CSS folders maken niet mogelijk"
|
78 |
-
|
79 |
-
#: app/models/FolderModel.php:32
|
80 |
-
msgid "Unable to create JS folders"
|
81 |
-
msgstr "JS folders maken niet mogelijk"
|
82 |
-
|
83 |
-
#: app/models/JSModel.php:24
|
84 |
-
msgid "Unable to create JS file"
|
85 |
-
msgstr "JS bestand maken niet mogelijk"
|
86 |
-
|
87 |
-
#: app/views/admin/page.phtml:202
|
88 |
-
msgid "Version"
|
89 |
-
msgstr "Versie"
|
90 |
-
|
91 |
-
#: app/views/admin/page.phtml:211 app/views/admin/page.phtml:1924
|
92 |
-
msgid "Update Responsive Menu Options"
|
93 |
-
msgstr "Responsive menu opties bijwerken"
|
94 |
-
|
95 |
-
#: app/views/admin/page.phtml:215
|
96 |
-
msgid "Responsive Menu Options"
|
97 |
-
msgstr "Responsive menu opties"
|
98 |
-
|
99 |
-
#: app/views/admin/page.phtml:215
|
100 |
-
msgid "Go Pro - Upgrade now"
|
101 |
-
msgstr ""
|
102 |
-
|
103 |
-
#: app/views/admin/page.phtml:234
|
104 |
-
msgid "Meta Tag Check"
|
105 |
-
msgstr "Meta tag controle"
|
106 |
-
|
107 |
-
#: app/views/admin/page.phtml:239
|
108 |
-
msgid "Recommended Metaport Tag"
|
109 |
-
msgstr "Aanbevolen metaport tag"
|
110 |
-
|
111 |
-
#: app/views/admin/page.phtml:251 app/views/admin/page.phtml:931
|
112 |
-
#: app/views/admin/page.phtml:1329 app/views/admin/page.phtml:1873
|
113 |
-
msgid "Note"
|
114 |
-
msgstr "Let op"
|
115 |
-
|
116 |
-
#: app/views/admin/page.phtml:252
|
117 |
-
msgid "This is only a reference guide and yours may vary slightly"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: app/views/admin/page.phtml:258
|
121 |
-
msgid "Transient Caching"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: app/views/admin/page.phtml:265
|
125 |
-
msgid "Turn on transient caching"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: app/views/admin/page.phtml:268
|
129 |
-
#, php-format
|
130 |
-
msgid ""
|
131 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
132 |
-
"this will break active links etc."
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#: app/views/admin/page.phtml:283
|
136 |
-
msgid "Shortcode Support"
|
137 |
-
msgstr "Shortcode ondersteuning"
|
138 |
-
|
139 |
-
#: app/views/admin/page.phtml:292
|
140 |
-
msgid "Click to use shortcode"
|
141 |
-
msgstr "Klik om de shortcode te gebruiken"
|
142 |
-
|
143 |
-
#: app/views/admin/page.phtml:294
|
144 |
-
msgid ""
|
145 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
146 |
-
msgstr ""
|
147 |
-
"Aanvinken als je een shortcode wil gebruiken in plaats van "
|
148 |
-
"standaardinstelling"
|
149 |
-
|
150 |
-
#: app/views/admin/page.phtml:308
|
151 |
-
msgid ""
|
152 |
-
"For a list of available shortcode options with explanations please visit the "
|
153 |
-
"following page:"
|
154 |
-
msgstr ""
|
155 |
-
|
156 |
-
#: app/views/admin/page.phtml:311
|
157 |
-
msgid "Shortcode Options"
|
158 |
-
msgstr ""
|
159 |
-
|
160 |
-
#: app/views/admin/page.phtml:319
|
161 |
-
msgid "Available Shortcode Options/Values"
|
162 |
-
msgstr ""
|
163 |
-
|
164 |
-
#: app/views/admin/page.phtml:323 app/views/admin/page.phtml:351
|
165 |
-
msgid "Option"
|
166 |
-
msgstr ""
|
167 |
-
|
168 |
-
#: app/views/admin/page.phtml:324
|
169 |
-
msgid "Values"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#: app/views/admin/page.phtml:346
|
173 |
-
msgid "Sorry, there are no available options"
|
174 |
-
msgstr ""
|
175 |
-
|
176 |
-
#: app/views/admin/page.phtml:352
|
177 |
-
msgid "Example Value"
|
178 |
-
msgstr ""
|
179 |
-
|
180 |
-
#: app/views/admin/page.phtml:400 app/views/admin/page.phtml:1401
|
181 |
-
#: app/views/admin/page.phtml:1545
|
182 |
-
msgid "e.g"
|
183 |
-
msgstr "bijv."
|
184 |
-
|
185 |
-
#: app/views/admin/page.phtml:413
|
186 |
-
msgid "Click Button Settings"
|
187 |
-
msgstr ""
|
188 |
-
|
189 |
-
#: app/views/admin/page.phtml:419
|
190 |
-
msgid "Click Button Title"
|
191 |
-
msgstr ""
|
192 |
-
|
193 |
-
#: app/views/admin/page.phtml:421
|
194 |
-
msgid "This is the title under the 3 lines of the click button"
|
195 |
-
msgstr ""
|
196 |
-
|
197 |
-
#: app/views/admin/page.phtml:431
|
198 |
-
msgid "Click Button Image"
|
199 |
-
msgstr ""
|
200 |
-
|
201 |
-
#: app/views/admin/page.phtml:433
|
202 |
-
msgid ""
|
203 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
204 |
-
"will be used"
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#: app/views/admin/page.phtml:445 app/views/admin/page.phtml:483
|
208 |
-
#: app/views/admin/page.phtml:685 app/views/admin/page.phtml:901
|
209 |
-
#: app/views/admin/page.phtml:921
|
210 |
-
msgid "Upload Image"
|
211 |
-
msgstr "Afbeelding uploaden"
|
212 |
-
|
213 |
-
#: app/views/admin/page.phtml:454
|
214 |
-
msgid "Change click menu to an X on click"
|
215 |
-
msgstr ""
|
216 |
-
|
217 |
-
#: app/views/admin/page.phtml:457
|
218 |
-
msgid "Tick this if you would like the 3 lines to turn into an x once clicked"
|
219 |
-
msgstr ""
|
220 |
-
"Aanvinken als je wilt dat de 3 lijnen wijzigen in een x zodra erop wordt "
|
221 |
-
"geklikt"
|
222 |
-
|
223 |
-
#: app/views/admin/page.phtml:469
|
224 |
-
msgid "Click Button Image When Clicked"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#: app/views/admin/page.phtml:471
|
228 |
-
msgid ""
|
229 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
230 |
-
"empty, the 3 lines will be used"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: app/views/admin/page.phtml:495
|
234 |
-
msgid "Fixed Positioning"
|
235 |
-
msgstr "Fixed positie"
|
236 |
-
|
237 |
-
#: app/views/admin/page.phtml:497
|
238 |
-
msgid ""
|
239 |
-
"Tick this if you would like the click button to remain in the same place "
|
240 |
-
"when scrolling"
|
241 |
-
msgstr ""
|
242 |
-
|
243 |
-
#: app/views/admin/page.phtml:510
|
244 |
-
msgid "Click Trigger"
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#: app/views/admin/page.phtml:512
|
248 |
-
msgid "You can set a custom ID or class for custom triggers here if you wish."
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#: app/views/admin/page.phtml:525
|
252 |
-
msgid "Click Button Size Settings"
|
253 |
-
msgstr "Klik button afmetingen"
|
254 |
-
|
255 |
-
#: app/views/admin/page.phtml:531
|
256 |
-
msgid "Width"
|
257 |
-
msgstr "Breedte"
|
258 |
-
|
259 |
-
#: app/views/admin/page.phtml:533
|
260 |
-
msgid "This is the width of the individual 3 lines"
|
261 |
-
msgstr "Dit is de breedte van de 3 individuele lijnen"
|
262 |
-
|
263 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
264 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
265 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
266 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
267 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
268 |
-
#: app/views/admin/page.phtml:1538
|
269 |
-
msgid "px"
|
270 |
-
msgstr "px"
|
271 |
-
|
272 |
-
#: app/views/admin/page.phtml:545
|
273 |
-
msgid "Height"
|
274 |
-
msgstr "Hoogte"
|
275 |
-
|
276 |
-
#: app/views/admin/page.phtml:547
|
277 |
-
msgid "This is the height of the individual 3 lines"
|
278 |
-
msgstr "Dit is de hoogte van de 3 individuele lijnen"
|
279 |
-
|
280 |
-
#: app/views/admin/page.phtml:561
|
281 |
-
msgid "Margin"
|
282 |
-
msgstr "Margin"
|
283 |
-
|
284 |
-
#: app/views/admin/page.phtml:563
|
285 |
-
msgid "This is the margin between the individual 3 lines"
|
286 |
-
msgstr "Dit is de afstand tussen de 3 individuele lijnen"
|
287 |
-
|
288 |
-
#: app/views/admin/page.phtml:583
|
289 |
-
msgid "Click Button Location Settings"
|
290 |
-
msgstr ""
|
291 |
-
|
292 |
-
#: app/views/admin/page.phtml:589 app/views/admin/page.phtml:747
|
293 |
-
msgid "Top"
|
294 |
-
msgstr "Boven"
|
295 |
-
|
296 |
-
#: app/views/admin/page.phtml:591
|
297 |
-
msgid ""
|
298 |
-
"This is the distance from the top of the page in px that the click button "
|
299 |
-
"will be displayed"
|
300 |
-
msgstr ""
|
301 |
-
|
302 |
-
#: app/views/admin/page.phtml:603
|
303 |
-
msgid "Left/Right Distance"
|
304 |
-
msgstr ""
|
305 |
-
|
306 |
-
#: app/views/admin/page.phtml:605
|
307 |
-
msgid ""
|
308 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
309 |
-
"that the menu will be displayed"
|
310 |
-
msgstr ""
|
311 |
-
|
312 |
-
#: app/views/admin/page.phtml:619
|
313 |
-
msgid "Left/Right"
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#: app/views/admin/page.phtml:621
|
317 |
-
msgid ""
|
318 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
319 |
-
"or right"
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: app/views/admin/page.phtml:651
|
323 |
-
msgid "Menu Settings"
|
324 |
-
msgstr "Menu instellingen"
|
325 |
-
|
326 |
-
#: app/views/admin/page.phtml:660
|
327 |
-
msgid "This is the title at the top of the responsive menu"
|
328 |
-
msgstr "Dit is de titel bovenaan het responsive menu"
|
329 |
-
|
330 |
-
#: app/views/admin/page.phtml:671
|
331 |
-
msgid "Menu Image"
|
332 |
-
msgstr "Menu afbeelding"
|
333 |
-
|
334 |
-
#: app/views/admin/page.phtml:673
|
335 |
-
msgid ""
|
336 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
337 |
-
"is 32px x 32px"
|
338 |
-
msgstr ""
|
339 |
-
"Dit is de afbeelding naast de menu titel. Optimale afmeting is 32px x 32px"
|
340 |
-
|
341 |
-
#: app/views/admin/page.phtml:695
|
342 |
-
msgid "Choose Menu To Responsify"
|
343 |
-
msgstr "Kies het menu dat responsive moet worden"
|
344 |
-
|
345 |
-
#: app/views/admin/page.phtml:697
|
346 |
-
msgid "This is the menu that will be used responsively"
|
347 |
-
msgstr "Dit is het menu dat responsive wordt gebruikt"
|
348 |
-
|
349 |
-
#: app/views/admin/page.phtml:717
|
350 |
-
msgid "You haven't set up any site menus yet"
|
351 |
-
msgstr "Je hebt nog geen site menus ingesteld"
|
352 |
-
|
353 |
-
#: app/views/admin/page.phtml:726
|
354 |
-
msgid "Slide Side"
|
355 |
-
msgstr "Slide kant"
|
356 |
-
|
357 |
-
#: app/views/admin/page.phtml:728
|
358 |
-
msgid "This is the side of the screen from which the menu will slide"
|
359 |
-
msgstr "Dit is de kant van het scherm vanaf waar het menu zal schuiven"
|
360 |
-
|
361 |
-
#: app/views/admin/page.phtml:735 app/views/admin/page.phtml:1288
|
362 |
-
#: app/views/admin/page.phtml:1295
|
363 |
-
msgid "Left"
|
364 |
-
msgstr "Links"
|
365 |
-
|
366 |
-
#: app/views/admin/page.phtml:741 app/views/admin/page.phtml:1305
|
367 |
-
msgid "Right"
|
368 |
-
msgstr "Rechts"
|
369 |
-
|
370 |
-
#: app/views/admin/page.phtml:753
|
371 |
-
msgid "Bottom"
|
372 |
-
msgstr "Onder"
|
373 |
-
|
374 |
-
#: app/views/admin/page.phtml:766
|
375 |
-
msgid "Choose Theme Location Menu To Responsify"
|
376 |
-
msgstr ""
|
377 |
-
|
378 |
-
#: app/views/admin/page.phtml:768
|
379 |
-
msgid ""
|
380 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
381 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
382 |
-
"like polylang)"
|
383 |
-
msgstr ""
|
384 |
-
|
385 |
-
#: app/views/admin/page.phtml:787
|
386 |
-
msgid "None"
|
387 |
-
msgstr ""
|
388 |
-
|
389 |
-
#: app/views/admin/page.phtml:794
|
390 |
-
msgid "You haven't set up any menus location yet"
|
391 |
-
msgstr ""
|
392 |
-
|
393 |
-
#: app/views/admin/page.phtml:802
|
394 |
-
msgid "Menu Title Link"
|
395 |
-
msgstr "Menu titel link"
|
396 |
-
|
397 |
-
#: app/views/admin/page.phtml:804
|
398 |
-
msgid "This is the link location for the title"
|
399 |
-
msgstr "Dit is de link locatie voor de titel"
|
400 |
-
|
401 |
-
#: app/views/admin/page.phtml:814
|
402 |
-
msgid "Menu Title Link Location"
|
403 |
-
msgstr "Menu titel link locatie"
|
404 |
-
|
405 |
-
#: app/views/admin/page.phtml:816
|
406 |
-
msgid "This is where your title page will be opened once clicked"
|
407 |
-
msgstr "Dit is waar de pagina zal openen zodra er geklikt is"
|
408 |
-
|
409 |
-
#: app/views/admin/page.phtml:823
|
410 |
-
msgid "New Tab"
|
411 |
-
msgstr "Nieuwe tab"
|
412 |
-
|
413 |
-
#: app/views/admin/page.phtml:829
|
414 |
-
msgid "Same Page"
|
415 |
-
msgstr "Zelfde pagina"
|
416 |
-
|
417 |
-
#: app/views/admin/page.phtml:835
|
418 |
-
msgid "Parent Page"
|
419 |
-
msgstr "Ouder pagina"
|
420 |
-
|
421 |
-
#: app/views/admin/page.phtml:841
|
422 |
-
msgid "Full Window Body"
|
423 |
-
msgstr "Volledig scherm"
|
424 |
-
|
425 |
-
#: app/views/admin/page.phtml:852
|
426 |
-
msgid "Sub Menu Arrow Settings"
|
427 |
-
msgstr "Sub menu pijltjes instelling"
|
428 |
-
|
429 |
-
#: app/views/admin/page.phtml:858
|
430 |
-
msgid "Active Geometric Shape"
|
431 |
-
msgstr "Actieve geometrische vorm"
|
432 |
-
|
433 |
-
#: app/views/admin/page.phtml:869
|
434 |
-
msgid "Inactive Geometric Shape"
|
435 |
-
msgstr ""
|
436 |
-
|
437 |
-
#: app/views/admin/page.phtml:882
|
438 |
-
msgid "You can find a list of Geometric HTML shape codes below"
|
439 |
-
msgstr "Een lijst van geometrische HTML vormen kun je hieronder vinden"
|
440 |
-
|
441 |
-
#: app/views/admin/page.phtml:889
|
442 |
-
msgid "Active Image"
|
443 |
-
msgstr "Actieve afbeelding"
|
444 |
-
|
445 |
-
#: app/views/admin/page.phtml:909
|
446 |
-
msgid "Inactive Image"
|
447 |
-
msgstr "Inactieve afbeelding"
|
448 |
-
|
449 |
-
#: app/views/admin/page.phtml:932
|
450 |
-
msgid ""
|
451 |
-
"Images have preference over shapes, to use HTML shapes please leave the "
|
452 |
-
"image field blank"
|
453 |
-
msgstr ""
|
454 |
-
"Afbeeldingen gaan boven een vorm, om een HTML vorm te gebruiken dien je het "
|
455 |
-
"afbeelding veld leeg te laten"
|
456 |
-
|
457 |
-
#: app/views/admin/page.phtml:939
|
458 |
-
msgid "Colour Settings"
|
459 |
-
msgstr "Kleur instellingen"
|
460 |
-
|
461 |
-
#: app/views/admin/page.phtml:941
|
462 |
-
msgid "Background Colours"
|
463 |
-
msgstr "Achtergrond kleur"
|
464 |
-
|
465 |
-
#: app/views/admin/page.phtml:945
|
466 |
-
msgid "Click Button"
|
467 |
-
msgstr "Klik button"
|
468 |
-
|
469 |
-
#: app/views/admin/page.phtml:953
|
470 |
-
msgid "Click Button Line & Text Colour"
|
471 |
-
msgstr "Klik button lijn en tekst kleur"
|
472 |
-
|
473 |
-
#: app/views/admin/page.phtml:955
|
474 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
475 |
-
msgstr ""
|
476 |
-
|
477 |
-
#: app/views/admin/page.phtml:968
|
478 |
-
msgid "Click Button Background Colour"
|
479 |
-
msgstr "Klik button achtergrond kleur"
|
480 |
-
|
481 |
-
#: app/views/admin/page.phtml:970
|
482 |
-
msgid "This is the background colour of the 3 lines container"
|
483 |
-
msgstr "Dit is de achtergrond kleur van de container van de 3 lijnen"
|
484 |
-
|
485 |
-
#: app/views/admin/page.phtml:985
|
486 |
-
msgid "Click Button Background Transparent"
|
487 |
-
msgstr "Transparante achtergrond klik button"
|
488 |
-
|
489 |
-
#: app/views/admin/page.phtml:987
|
490 |
-
msgid ""
|
491 |
-
"Tick this if you would like a transparent background on the click button"
|
492 |
-
msgstr "Aanvinken als je een transparante achtergrond wil voor de klik button"
|
493 |
-
|
494 |
-
#: app/views/admin/page.phtml:1007
|
495 |
-
msgid "Main Menu"
|
496 |
-
msgstr "Hoofdmenu"
|
497 |
-
|
498 |
-
#: app/views/admin/page.phtml:1015
|
499 |
-
msgid "Menu Background Colour"
|
500 |
-
msgstr "Menu achtergrond kleur"
|
501 |
-
|
502 |
-
#: app/views/admin/page.phtml:1017
|
503 |
-
msgid "This is the background colour of the expanded menu"
|
504 |
-
msgstr "Dit is de achtergrond kleur van het uitgevouwen menu"
|
505 |
-
|
506 |
-
#: app/views/admin/page.phtml:1030
|
507 |
-
msgid "Menu Background Hover Colour"
|
508 |
-
msgstr "Menu achtergrond hover kleur"
|
509 |
-
|
510 |
-
#: app/views/admin/page.phtml:1032
|
511 |
-
msgid "This is the hover background colour of the expanded menu"
|
512 |
-
msgstr "Dit is de hover kleur van de achtergrond van het uitgevouwen menu"
|
513 |
-
|
514 |
-
#: app/views/admin/page.phtml:1047
|
515 |
-
msgid "Menu Link Border Colour"
|
516 |
-
msgstr "Menu link border kleur"
|
517 |
-
|
518 |
-
#: app/views/admin/page.phtml:1049
|
519 |
-
msgid "This is the border colour of the menu links"
|
520 |
-
msgstr "Dit is de kleur van de borders van de menu links"
|
521 |
-
|
522 |
-
#: app/views/admin/page.phtml:1062
|
523 |
-
msgid "Title Background Colour"
|
524 |
-
msgstr "Titel achtergrond kleur"
|
525 |
-
|
526 |
-
#: app/views/admin/page.phtml:1064
|
527 |
-
msgid "This is the background colour of the menu title"
|
528 |
-
msgstr "Dit is de achtergrond kleur van de menu titel"
|
529 |
-
|
530 |
-
#: app/views/admin/page.phtml:1079
|
531 |
-
msgid "Current Page Link Background Colour"
|
532 |
-
msgstr "Huidige pagina link achtergrond kleur"
|
533 |
-
|
534 |
-
#: app/views/admin/page.phtml:1081
|
535 |
-
msgid "This is the background colour of the current page link"
|
536 |
-
msgstr "Dit is de achtergrond kleur van de actieve pagina link"
|
537 |
-
|
538 |
-
#: app/views/admin/page.phtml:1094
|
539 |
-
msgid "Current Page Link Background Hover Colour"
|
540 |
-
msgstr ""
|
541 |
-
|
542 |
-
#: app/views/admin/page.phtml:1096
|
543 |
-
msgid "This is the hover background colour of the current page link"
|
544 |
-
msgstr ""
|
545 |
-
|
546 |
-
#: app/views/admin/page.phtml:1110
|
547 |
-
msgid "Text Colours"
|
548 |
-
msgstr "Tekst kleuren"
|
549 |
-
|
550 |
-
#: app/views/admin/page.phtml:1119
|
551 |
-
msgid "Menu Title Colour"
|
552 |
-
msgstr "Kleur menu titel"
|
553 |
-
|
554 |
-
#: app/views/admin/page.phtml:1121
|
555 |
-
msgid "This is the text colour of the menu title"
|
556 |
-
msgstr "Dit is de tekst kleur van de menu titel"
|
557 |
-
|
558 |
-
#: app/views/admin/page.phtml:1134
|
559 |
-
msgid "Menu Title Hover Colour"
|
560 |
-
msgstr "Menu titel hover kleur"
|
561 |
-
|
562 |
-
#: app/views/admin/page.phtml:1136
|
563 |
-
msgid "This is the hover colour of the menu title"
|
564 |
-
msgstr "Dit is de hover kleur van de menu titel"
|
565 |
-
|
566 |
-
#: app/views/admin/page.phtml:1151
|
567 |
-
msgid "Menu Link Colour"
|
568 |
-
msgstr "Menu link kleur"
|
569 |
-
|
570 |
-
#: app/views/admin/page.phtml:1153
|
571 |
-
msgid "This is the text colour of the menu links"
|
572 |
-
msgstr "Dit is de tekst kleur van de menu links"
|
573 |
-
|
574 |
-
#: app/views/admin/page.phtml:1166
|
575 |
-
msgid "Menu Link Hover Colour"
|
576 |
-
msgstr "Menu link hover kleur"
|
577 |
-
|
578 |
-
#: app/views/admin/page.phtml:1168
|
579 |
-
msgid "This is the text hover colour of the menu links"
|
580 |
-
msgstr "Dit is de tekst kleur van de menu hover links"
|
581 |
-
|
582 |
-
#: app/views/admin/page.phtml:1184
|
583 |
-
msgid "Current Page Link Colour"
|
584 |
-
msgstr "Huidige pagina link kleur"
|
585 |
-
|
586 |
-
#: app/views/admin/page.phtml:1186
|
587 |
-
msgid "This is the text colour of the current page link"
|
588 |
-
msgstr "Dit is de tekst kleur van de actieve pagina link"
|
589 |
-
|
590 |
-
#: app/views/admin/page.phtml:1199
|
591 |
-
msgid "Current Page Link Hover Colour"
|
592 |
-
msgstr ""
|
593 |
-
|
594 |
-
#: app/views/admin/page.phtml:1201
|
595 |
-
msgid "This is the text hover colour of the current page link"
|
596 |
-
msgstr ""
|
597 |
-
|
598 |
-
#: app/views/admin/page.phtml:1218
|
599 |
-
msgid "Style Settings"
|
600 |
-
msgstr "Stijl instellingen"
|
601 |
-
|
602 |
-
#: app/views/admin/page.phtml:1225
|
603 |
-
msgid "Font"
|
604 |
-
msgstr "Lettertype"
|
605 |
-
|
606 |
-
#: app/views/admin/page.phtml:1227
|
607 |
-
msgid "Enter a font name below, if empty your default site font will be used"
|
608 |
-
msgstr ""
|
609 |
-
"Geef een lettertype naam in. Indien leeg wordt het standaard lettertype van "
|
610 |
-
"de site gebruikt"
|
611 |
-
|
612 |
-
#: app/views/admin/page.phtml:1238
|
613 |
-
msgid "Font Size"
|
614 |
-
msgstr "Lettertype afmeting"
|
615 |
-
|
616 |
-
#: app/views/admin/page.phtml:1240
|
617 |
-
msgid "Enter a font size in pixels below"
|
618 |
-
msgstr "Geef de grotte van de lettertype in in pixels"
|
619 |
-
|
620 |
-
#: app/views/admin/page.phtml:1240 app/views/admin/page.phtml:1257
|
621 |
-
#: app/views/admin/page.phtml:1271 app/views/admin/page.phtml:1288
|
622 |
-
#: app/views/admin/page.phtml:1315 app/views/admin/page.phtml:1417
|
623 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
624 |
-
msgid "default"
|
625 |
-
msgstr "standaard"
|
626 |
-
|
627 |
-
#: app/views/admin/page.phtml:1255
|
628 |
-
msgid "Click Button Font Size"
|
629 |
-
msgstr "Klik knop lettertype afmeting"
|
630 |
-
|
631 |
-
#: app/views/admin/page.phtml:1257
|
632 |
-
msgid "Enter a click button font size in pixels below"
|
633 |
-
msgstr "Voer de grootte van het lettertype voor de klik knop in in pixels"
|
634 |
-
|
635 |
-
#: app/views/admin/page.phtml:1269
|
636 |
-
msgid "Title Font Size"
|
637 |
-
msgstr "Titel lettertype afmeting"
|
638 |
-
|
639 |
-
#: app/views/admin/page.phtml:1271
|
640 |
-
msgid "Enter a title font size in pixels below"
|
641 |
-
msgstr "Geef de afmeting in voor de lettertype van de titel in pixels"
|
642 |
-
|
643 |
-
#: app/views/admin/page.phtml:1286
|
644 |
-
msgid "Text Alignment"
|
645 |
-
msgstr "Tekst uitlijning"
|
646 |
-
|
647 |
-
#: app/views/admin/page.phtml:1288
|
648 |
-
msgid "Enter a text alignment option below"
|
649 |
-
msgstr "Kies een tekst uitlijning hieronder"
|
650 |
-
|
651 |
-
#: app/views/admin/page.phtml:1300
|
652 |
-
msgid "Centre"
|
653 |
-
msgstr "Midden"
|
654 |
-
|
655 |
-
#: app/views/admin/page.phtml:1313
|
656 |
-
msgid "Links Height"
|
657 |
-
msgstr "Links hoogte"
|
658 |
-
|
659 |
-
#: app/views/admin/page.phtml:1315
|
660 |
-
msgid "Enter a link height size in pixels below"
|
661 |
-
msgstr "Geef de hoogte van de link in in pixels"
|
662 |
-
|
663 |
-
#: app/views/admin/page.phtml:1330
|
664 |
-
msgid ""
|
665 |
-
"Setting the below two values to the same number will give you a fixed width "
|
666 |
-
"effect"
|
667 |
-
msgstr "Als je de 2 waardes hieronder gelijk houdt krijg je een vaste breedte"
|
668 |
-
|
669 |
-
#: app/views/admin/page.phtml:1340
|
670 |
-
msgid "Minimum Width"
|
671 |
-
msgstr "Minimum breedte"
|
672 |
-
|
673 |
-
#: app/views/admin/page.phtml:1342
|
674 |
-
msgid "Enter a minimum menu width size in pixels below"
|
675 |
-
msgstr "Geef een minimum breedte in in pixels"
|
676 |
-
|
677 |
-
#: app/views/admin/page.phtml:1354
|
678 |
-
msgid "Maximum Width"
|
679 |
-
msgstr "Maximum breedte"
|
680 |
-
|
681 |
-
#: app/views/admin/page.phtml:1356
|
682 |
-
msgid "Enter a maximum menu width size in pixels below"
|
683 |
-
msgstr "Geef een maximum breedte in in pixels"
|
684 |
-
|
685 |
-
#: app/views/admin/page.phtml:1371
|
686 |
-
msgid "Animation Settings"
|
687 |
-
msgstr "Animatie instellingen"
|
688 |
-
|
689 |
-
#: app/views/admin/page.phtml:1377
|
690 |
-
msgid "Slide Animation"
|
691 |
-
msgstr "Slide animatie"
|
692 |
-
|
693 |
-
#: app/views/admin/page.phtml:1379
|
694 |
-
msgid "Choose the type of animation applied to the menu"
|
695 |
-
msgstr "Kies het type animatie dat moet worden gebruikt"
|
696 |
-
|
697 |
-
#: app/views/admin/page.phtml:1386
|
698 |
-
msgid "Overlay"
|
699 |
-
msgstr "Overlay"
|
700 |
-
|
701 |
-
#: app/views/admin/page.phtml:1391
|
702 |
-
msgid "Push"
|
703 |
-
msgstr "Push"
|
704 |
-
|
705 |
-
#: app/views/admin/page.phtml:1399
|
706 |
-
msgid "Page Wrappers CSS"
|
707 |
-
msgstr "Pagina wrapper CSS"
|
708 |
-
|
709 |
-
#: app/views/admin/page.phtml:1401
|
710 |
-
msgid ""
|
711 |
-
"This is the CSS of the wrapper you want to push when using the push animation"
|
712 |
-
msgstr ""
|
713 |
-
"Dit is de CSS van de wrapper die je wilt pushen als je de push "
|
714 |
-
"animatiegebruikt"
|
715 |
-
|
716 |
-
#: app/views/admin/page.phtml:1415
|
717 |
-
msgid "Animation Speed"
|
718 |
-
msgstr "Animatie snelheid"
|
719 |
-
|
720 |
-
#: app/views/admin/page.phtml:1417
|
721 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
722 |
-
msgstr "Vul een snelheid in in seconden"
|
723 |
-
|
724 |
-
#: app/views/admin/page.phtml:1424 app/views/admin/page.phtml:1438
|
725 |
-
msgid "seconds"
|
726 |
-
msgstr "seconden"
|
727 |
-
|
728 |
-
#: app/views/admin/page.phtml:1429
|
729 |
-
msgid "Transition Speed"
|
730 |
-
msgstr "Transitie snelheid"
|
731 |
-
|
732 |
-
#: app/views/admin/page.phtml:1431
|
733 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
734 |
-
msgstr "Geef een snelheid in in seconden"
|
735 |
-
|
736 |
-
#: app/views/admin/page.phtml:1445
|
737 |
-
msgid "Accordion Animation For Sub-Menus"
|
738 |
-
msgstr "Accordion animatie voor sub menus"
|
739 |
-
|
740 |
-
#: app/views/admin/page.phtml:1447
|
741 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
742 |
-
msgstr "Aanvinken als je de accordion animatie voor sub menus wil activeren"
|
743 |
-
|
744 |
-
#: app/views/admin/page.phtml:1460
|
745 |
-
msgid "Push button with Animation"
|
746 |
-
msgstr ""
|
747 |
-
|
748 |
-
#: app/views/admin/page.phtml:1462
|
749 |
-
msgid "Tick to enable the click button to be pushed with animation"
|
750 |
-
msgstr ""
|
751 |
-
|
752 |
-
#: app/views/admin/page.phtml:1480
|
753 |
-
msgid "Additional HTML Content Settings"
|
754 |
-
msgstr "Extra HTML content entsellingen"
|
755 |
-
|
756 |
-
#: app/views/admin/page.phtml:1487
|
757 |
-
msgid "Additional HTML Content"
|
758 |
-
msgstr "Extra HTML content"
|
759 |
-
|
760 |
-
#: app/views/admin/page.phtml:1489
|
761 |
-
msgid ""
|
762 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
763 |
-
"banners etc. (accepts shortcodes)"
|
764 |
-
msgstr ""
|
765 |
-
|
766 |
-
#: app/views/admin/page.phtml:1496
|
767 |
-
msgid "Additional HTML Content Positioning"
|
768 |
-
msgstr "Extra HTML content postionering"
|
769 |
-
|
770 |
-
#: app/views/admin/page.phtml:1498
|
771 |
-
msgid "Select where you would like the additional HTML content to appear"
|
772 |
-
msgstr "Kies waar je de extra HTML content wilt tonen"
|
773 |
-
|
774 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
775 |
-
msgid "Above Menu Links"
|
776 |
-
msgstr "Boven de menu links"
|
777 |
-
|
778 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
779 |
-
msgid "Below Menu Links"
|
780 |
-
msgstr "Onder de menu links"
|
781 |
-
|
782 |
-
#: app/views/admin/page.phtml:1523
|
783 |
-
msgid "Menu Advanced Settings"
|
784 |
-
msgstr ""
|
785 |
-
|
786 |
-
#: app/views/admin/page.phtml:1529
|
787 |
-
msgid "Menu Breakpoint"
|
788 |
-
msgstr "Menu breekpunt"
|
789 |
-
|
790 |
-
#: app/views/admin/page.phtml:1531
|
791 |
-
msgid ""
|
792 |
-
"This is the point where the responsive menu will be visible in px width of "
|
793 |
-
"the browser"
|
794 |
-
msgstr ""
|
795 |
-
"Dit is het punt waarop het responsive menu actief word in px breedtevan de "
|
796 |
-
"browser"
|
797 |
-
|
798 |
-
#: app/views/admin/page.phtml:1543
|
799 |
-
msgid "CSS of Menu To Hide"
|
800 |
-
msgstr "CSS van het menu dat verborgen moet worden"
|
801 |
-
|
802 |
-
#: app/views/admin/page.phtml:1545
|
803 |
-
msgid ""
|
804 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
805 |
-
msgstr ""
|
806 |
-
"Dit is het CSS van het menu dat je wilt verbergen zodra het responsivemenu "
|
807 |
-
"wordt getoond"
|
808 |
-
|
809 |
-
#: app/views/admin/page.phtml:1559
|
810 |
-
msgid "Menu Depth"
|
811 |
-
msgstr "Menu diepte"
|
812 |
-
|
813 |
-
#: app/views/admin/page.phtml:1561
|
814 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
815 |
-
msgstr "Dit is hoeveel lagen je menuboom getoond worden (max"
|
816 |
-
|
817 |
-
#: app/views/admin/page.phtml:1580
|
818 |
-
msgid "Menu Width"
|
819 |
-
msgstr "Menu breedte"
|
820 |
-
|
821 |
-
#: app/views/admin/page.phtml:1582
|
822 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
823 |
-
msgstr "Dit is de breedte van het uitgeschoven menu t.o.v. het scherm"
|
824 |
-
|
825 |
-
#: app/views/admin/page.phtml:1603
|
826 |
-
msgid "Remove Search Box"
|
827 |
-
msgstr "Verwijder zoekveld"
|
828 |
-
|
829 |
-
#: app/views/admin/page.phtml:1605
|
830 |
-
msgid "Tick if you would like to remove the search box"
|
831 |
-
msgstr "Aanvinken als je het zoekveld wilt verwijderen"
|
832 |
-
|
833 |
-
#: app/views/admin/page.phtml:1618
|
834 |
-
msgid "Search Box Positioning"
|
835 |
-
msgstr "Zoekveld positie"
|
836 |
-
|
837 |
-
#: app/views/admin/page.phtml:1620
|
838 |
-
msgid "Select where you would like the search box to appear"
|
839 |
-
msgstr "Kies waar je het zoekveld wilt tonen"
|
840 |
-
|
841 |
-
#: app/views/admin/page.phtml:1642
|
842 |
-
msgid "Click to Close Menu on Link Click"
|
843 |
-
msgstr "Klik om het menu te sluiten na klikken"
|
844 |
-
|
845 |
-
#: app/views/admin/page.phtml:1644
|
846 |
-
msgid ""
|
847 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
848 |
-
"single page sites"
|
849 |
-
msgstr ""
|
850 |
-
"Aanvinken als je het menu wilt sluiten na het klikken op een link,makkelijk "
|
851 |
-
"voor 1 pagina sites"
|
852 |
-
|
853 |
-
#: app/views/admin/page.phtml:1657
|
854 |
-
msgid "Auto Expand Current Parent Items"
|
855 |
-
msgstr "Huidige ouder items automatisch uitvouwen"
|
856 |
-
|
857 |
-
#: app/views/admin/page.phtml:1659
|
858 |
-
msgid ""
|
859 |
-
"Tick if you would like to make the current pages children expanded "
|
860 |
-
"automatically"
|
861 |
-
msgstr "Aanvinken als je de sublinks automatisch uitgevouwen wil hebben"
|
862 |
-
|
863 |
-
#: app/views/admin/page.phtml:1673
|
864 |
-
msgid "Auto Expand Sub-Menus"
|
865 |
-
msgstr "Sub menus automatisch uitvouwen"
|
866 |
-
|
867 |
-
#: app/views/admin/page.phtml:1675
|
868 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
869 |
-
msgstr "Aanvinken als je sub-menus automatisch wilt uitvouwen"
|
870 |
-
|
871 |
-
#: app/views/admin/page.phtml:1688
|
872 |
-
msgid "Ignore Parent Clicks"
|
873 |
-
msgstr "Kliks op hoofdmenu items negeren"
|
874 |
-
|
875 |
-
#: app/views/admin/page.phtml:1690
|
876 |
-
msgid "Tick if you would like to ignore clicks on parent links"
|
877 |
-
msgstr "Aanvinken als je kliks op hoofdlinks wilt negeren"
|
878 |
-
|
879 |
-
#: app/views/admin/page.phtml:1704
|
880 |
-
msgid "Click to Close Menu on Page Click"
|
881 |
-
msgstr "Klik om het menu te sluite bij klikken in pagina"
|
882 |
-
|
883 |
-
#: app/views/admin/page.phtml:1706
|
884 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
885 |
-
msgstr "Aanvinken als je het menu wilt sluiten na klikken op pagina"
|
886 |
-
|
887 |
-
#: app/views/admin/page.phtml:1727
|
888 |
-
msgid "Technical Settings"
|
889 |
-
msgstr ""
|
890 |
-
|
891 |
-
#: app/views/admin/page.phtml:1733
|
892 |
-
msgid "Minify output"
|
893 |
-
msgstr "Minify output"
|
894 |
-
|
895 |
-
#: app/views/admin/page.phtml:1735
|
896 |
-
msgid ""
|
897 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
898 |
-
"file size"
|
899 |
-
msgstr ""
|
900 |
-
"Aanvinken als je het script/stijl wil minimaliseren. Bespaart to 50%in "
|
901 |
-
"bestandsgrootte"
|
902 |
-
|
903 |
-
#: app/views/admin/page.phtml:1748
|
904 |
-
msgid "Include script in footer"
|
905 |
-
msgstr "Script in footer plaatsen"
|
906 |
-
|
907 |
-
#: app/views/admin/page.phtml:1750
|
908 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
909 |
-
msgstr "Aanvinken als je je JQuery script in de footer wilt plaatsen"
|
910 |
-
|
911 |
-
#: app/views/admin/page.phtml:1764
|
912 |
-
msgid "Include CSS/JS as external files"
|
913 |
-
msgstr "CSS/JS bestanden als externe bestanden toevoegen"
|
914 |
-
|
915 |
-
#: app/views/admin/page.phtml:1766
|
916 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
917 |
-
msgstr "Aanvinken als je CSS en JQuery als externe bestanden wilt gebruiken"
|
918 |
-
|
919 |
-
#: app/views/admin/page.phtml:1777
|
920 |
-
msgid "Remove CSS !important tags"
|
921 |
-
msgstr "Verwijder CSS !important tags"
|
922 |
-
|
923 |
-
#: app/views/admin/page.phtml:1780
|
924 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
925 |
-
msgstr "Aanvinken als je de !important tags uit de CSS wilt verwijderen"
|
926 |
-
|
927 |
-
#: app/views/admin/page.phtml:1781
|
928 |
-
msgid ""
|
929 |
-
"Ticking this will make it easier to over-ride the styles but may make the "
|
930 |
-
"default settings not display well"
|
931 |
-
msgstr ""
|
932 |
-
"Als je dit doet wordt het makkelijker om stijlen te overschrijven maar de "
|
933 |
-
"standaard instellingen kunnen mogelijk niet goed werken"
|
934 |
-
|
935 |
-
#: app/views/admin/page.phtml:1795
|
936 |
-
msgid "Custom Walker"
|
937 |
-
msgstr ""
|
938 |
-
|
939 |
-
#: app/views/admin/page.phtml:1803
|
940 |
-
msgid "Specify you own Walker for the menu (wp_nav_menu parameter)"
|
941 |
-
msgstr ""
|
942 |
-
|
943 |
-
#: app/views/admin/page.phtml:1804
|
944 |
-
msgid ""
|
945 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
946 |
-
"alone"
|
947 |
-
msgstr ""
|
948 |
-
|
949 |
-
#: app/views/admin/page.phtml:1833
|
950 |
-
msgid "Import File"
|
951 |
-
msgstr "Import bestand"
|
952 |
-
|
953 |
-
#: app/views/admin/page.phtml:1840
|
954 |
-
msgid "Import Options From XML"
|
955 |
-
msgstr ""
|
956 |
-
|
957 |
-
#: app/views/admin/page.phtml:1859
|
958 |
-
msgid "Export Current Options"
|
959 |
-
msgstr ""
|
960 |
-
|
961 |
-
#: app/views/admin/page.phtml:1874
|
962 |
-
msgid ""
|
963 |
-
"Please be warned this will reset all your current settings, please export "
|
964 |
-
"your current files first"
|
965 |
-
msgstr ""
|
966 |
-
|
967 |
-
#: app/views/admin/page.phtml:1880
|
968 |
-
msgid "Reset ALL Current Options"
|
969 |
-
msgstr ""
|
970 |
-
|
971 |
-
#: app/views/admin/page.phtml:1895 app/views/admin/page.phtml:1908
|
972 |
-
msgid ""
|
973 |
-
"This feature is only available in the pro version, please click below to "
|
974 |
-
"upgrade"
|
975 |
-
msgstr ""
|
976 |
-
|
977 |
-
#: app/views/admin/page.phtml:1898 app/views/admin/page.phtml:1911
|
978 |
-
msgid "Upgrade now"
|
979 |
-
msgstr ""
|
980 |
-
|
981 |
-
#~ msgid "Viewport Meta Tag Check"
|
982 |
-
#~ msgstr "Viewport meta tag controle"
|
983 |
-
|
984 |
-
#~ msgid "Below Viewport Meta Tag Found"
|
985 |
-
#~ msgstr "Onderstaande viewport meta tag gevonden"
|
986 |
-
|
987 |
-
#~ msgid "Viewport Meta Tag Not Found"
|
988 |
-
#~ msgstr "Viewport meta tag niet gevonden"
|
989 |
-
|
990 |
-
#~ msgid ""
|
991 |
-
#~ "This is only a reference guide and is not critical if you are seeing "
|
992 |
-
#~ "errors, these can usually be ignored"
|
993 |
-
#~ msgstr ""
|
994 |
-
#~ "Dit is slechts ter kennisgeving en niet kritiek, als je fouten zietkunnen "
|
995 |
-
#~ "deze meestal worden genegeerd."
|
996 |
-
|
997 |
-
#~ msgid ""
|
998 |
-
#~ "For a list of available shortcode options please visit the following page:"
|
999 |
-
#~ msgstr ""
|
1000 |
-
#~ "Bezoek de volgende pagina voor een lijst met beschikbare shortcode opties:"
|
1001 |
-
|
1002 |
-
#~ msgid ""
|
1003 |
-
#~ "This is the distance from the right of the page in % that the menu will "
|
1004 |
-
#~ "be displayed"
|
1005 |
-
#~ msgstr ""
|
1006 |
-
#~ "Dit is de afstand van de rechterkant van de pagina in % waar het menu "
|
1007 |
-
#~ "wordt getoond"
|
1008 |
-
|
1009 |
-
#~ msgid "Inactive Gemetric Shape"
|
1010 |
-
#~ msgstr "Inactieve geometrische vorm"
|
1011 |
-
|
1012 |
-
#~ msgid ""
|
1013 |
-
#~ "Warning: The Push Animation requires you to place the following meta tag "
|
1014 |
-
#~ "in your site header"
|
1015 |
-
#~ msgstr ""
|
1016 |
-
#~ "Waarschuwing: Voor de push animatie moet je de volgende meta tag in je "
|
1017 |
-
#~ "site header plaatsen"
|
1018 |
-
|
1019 |
-
#~ msgid "Export Options"
|
1020 |
-
#~ msgstr "Export opties"
|
1021 |
-
|
1022 |
-
#~ msgid "Import Options"
|
1023 |
-
#~ msgstr "Import opties"
|
1024 |
-
|
1025 |
-
#~ msgid ""
|
1026 |
-
#~ "Use shortcode [responsive-menu] - currently this is only for those that "
|
1027 |
-
#~ "know about CSS customisation etc. and doesn't offer any additional "
|
1028 |
-
#~ "functionality"
|
1029 |
-
#~ msgstr ""
|
1030 |
-
#~ "Gebruik shortcode [responsive-menu] - momenteel is dit alleen voordegenen "
|
1031 |
-
#~ "die weten hoe CSS toe te passen en het geeft geen extra functionaliteit"
|
1032 |
-
|
1033 |
-
#~ msgid "Menu Button Title"
|
1034 |
-
#~ msgstr "Titel menu knop"
|
1035 |
-
|
1036 |
-
#~ msgid "This is the title under the 3 lines of the menu button"
|
1037 |
-
#~ msgstr "Dit is de titel onder de 3 lijnen van de menu knop"
|
1038 |
-
|
1039 |
-
#~ msgid "Click Menu Image"
|
1040 |
-
#~ msgstr "Menu knop afbeelding"
|
1041 |
-
|
1042 |
-
#~ msgid ""
|
1043 |
-
#~ "This is the click image button that replaces the 3 lines. If empty, the 3 "
|
1044 |
-
#~ "lines will be used"
|
1045 |
-
#~ msgstr ""
|
1046 |
-
#~ "Deze afbeelding vervangt de 3 lijnen knop. Laat leeg om de 3 lijnente "
|
1047 |
-
#~ "gebruiken"
|
1048 |
-
|
1049 |
-
#~ msgid "Click Menu Image When Clicked"
|
1050 |
-
#~ msgstr "Actieve menu knop afbeelding"
|
1051 |
-
|
1052 |
-
#~ msgid ""
|
1053 |
-
#~ "This is the click image button that replaces the 3 lines when clicked. If "
|
1054 |
-
#~ "empty, the 3 lines will be used"
|
1055 |
-
#~ msgstr ""
|
1056 |
-
#~ "Dit is de menu knop afbeelding die getoond wordt zodra erop wordtgeklikt. "
|
1057 |
-
#~ "Laat leeg om de 3 lijnen te tonen"
|
1058 |
-
|
1059 |
-
#~ msgid "Location Settings"
|
1060 |
-
#~ msgstr "Locatie instellingen"
|
1061 |
-
|
1062 |
-
#~ msgid ""
|
1063 |
-
#~ "This is the distance from the top of the page in px that the menu will be "
|
1064 |
-
#~ "displayed"
|
1065 |
-
#~ msgstr ""
|
1066 |
-
#~ "Dit is de afstand van de bovenzijde van de pagina in px waar het menu "
|
1067 |
-
#~ "wordt getoond"
|
1068 |
-
|
1069 |
-
#~ msgid "This is the colour of the 3 lines and text for the menu button"
|
1070 |
-
#~ msgstr "Dit is de kleur van de 3 lijnen en de tekst voor de knop"
|
1071 |
-
|
1072 |
-
#~ msgid ""
|
1073 |
-
#~ "Tick this if you would like the menu button to remain in the same place "
|
1074 |
-
#~ "when scrolling"
|
1075 |
-
#~ msgstr ""
|
1076 |
-
#~ "Aanvinken als je de menu knop op dezelfde plaats wilt laten staan bij het "
|
1077 |
-
#~ "scrollen"
|
1078 |
-
|
1079 |
-
#~ msgid "Change click menu to an x on click"
|
1080 |
-
#~ msgstr "Verander klik menu in en x wanneer erop wordt geklikt"
|
1081 |
-
|
1082 |
-
#~ msgid "This currently only works on the first depth level"
|
1083 |
-
#~ msgstr "Dit werkt momenteel alleen op eerste diepte niveau"
|
1084 |
-
|
1085 |
-
#~ msgid ""
|
1086 |
-
#~ "Enter any additional HTML you may want below, useful for advertisement "
|
1087 |
-
#~ "banners etc."
|
1088 |
-
#~ msgstr ""
|
1089 |
-
#~ "Hieronder kun je HTML toevoegen, bijv. voor advertenties, banners etc."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
translations/responsive-menu.mo
DELETED
Binary file
|
translations/responsive-menu.po
DELETED
@@ -1,958 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Responsive Menu WordPress\n"
|
4 |
-
"POT-Creation-Date: 2015-08-19 21:38+0100\n"
|
5 |
-
"PO-Revision-Date: 2015-08-19 21:38+0100\n"
|
6 |
-
"Last-Translator: ResponsiveMenu <support@responsive.menu>\n"
|
7 |
-
"Language-Team: ResponsiveMenu <support@responsive.menu>\n"
|
8 |
-
"Language: en\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.4\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: app\n"
|
17 |
-
|
18 |
-
#: app/config.php:84 app/views/admin/page.phtml:658
|
19 |
-
msgid "Menu Title"
|
20 |
-
msgstr ""
|
21 |
-
|
22 |
-
#: app/controllers/AdminController.php:56
|
23 |
-
#: app/controllers/AdminController.php:57
|
24 |
-
msgid "Responsive Menu"
|
25 |
-
msgstr ""
|
26 |
-
|
27 |
-
#: app/controllers/AdminController.php:155
|
28 |
-
msgid "Settings"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: app/controllers/GlobalController.php:57
|
32 |
-
msgid "Highly Customisable Responsive Menu Plugin for WordPress"
|
33 |
-
msgstr ""
|
34 |
-
|
35 |
-
#: app/library/responsive-menu/Export.php:23
|
36 |
-
msgid "Could not create export file, please check plugin folder permissions"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: app/library/responsive-menu/Export.php:43
|
40 |
-
msgid "You can download your exported file by clicking here"
|
41 |
-
msgstr ""
|
42 |
-
|
43 |
-
#: app/library/responsive-menu/Import.php:17
|
44 |
-
msgid "No Import File Attached"
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: app/library/responsive-menu/Import.php:20
|
48 |
-
msgid "Incorrect Import File Format"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: app/library/responsive-menu/Import.php:23
|
52 |
-
msgid "Import File Too Large"
|
53 |
-
msgstr ""
|
54 |
-
|
55 |
-
#: app/library/responsive-menu/Import.php:26
|
56 |
-
msgid "Import File Not Valid"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#: app/library/responsive-menu/View.php:68
|
60 |
-
msgid "Search"
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: app/models/AdminModel.php:368
|
64 |
-
msgid "You have successfully updated the Responsive Menu options"
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
#: app/models/CSSModel.php:24
|
68 |
-
msgid "Unable to create CSS file"
|
69 |
-
msgstr ""
|
70 |
-
|
71 |
-
#: app/models/FolderModel.php:26
|
72 |
-
msgid "Unable to create data folders"
|
73 |
-
msgstr ""
|
74 |
-
|
75 |
-
#: app/models/FolderModel.php:29
|
76 |
-
msgid "Unable to create CSS folders"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#: app/models/FolderModel.php:32
|
80 |
-
msgid "Unable to create JS folders"
|
81 |
-
msgstr ""
|
82 |
-
|
83 |
-
#: app/models/JSModel.php:24
|
84 |
-
msgid "Unable to create JS file"
|
85 |
-
msgstr ""
|
86 |
-
|
87 |
-
#: app/views/admin/page.phtml:202
|
88 |
-
msgid "Version"
|
89 |
-
msgstr ""
|
90 |
-
|
91 |
-
#: app/views/admin/page.phtml:211 app/views/admin/page.phtml:1924
|
92 |
-
msgid "Update Responsive Menu Options"
|
93 |
-
msgstr ""
|
94 |
-
|
95 |
-
#: app/views/admin/page.phtml:215
|
96 |
-
msgid "Responsive Menu Options"
|
97 |
-
msgstr ""
|
98 |
-
|
99 |
-
#: app/views/admin/page.phtml:215
|
100 |
-
msgid "Go Pro - Upgrade now"
|
101 |
-
msgstr ""
|
102 |
-
|
103 |
-
#: app/views/admin/page.phtml:234
|
104 |
-
msgid "Meta Tag Check"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#: app/views/admin/page.phtml:239
|
108 |
-
msgid "Recommended Metaport Tag"
|
109 |
-
msgstr ""
|
110 |
-
|
111 |
-
#: app/views/admin/page.phtml:251 app/views/admin/page.phtml:931
|
112 |
-
#: app/views/admin/page.phtml:1329 app/views/admin/page.phtml:1873
|
113 |
-
msgid "Note"
|
114 |
-
msgstr ""
|
115 |
-
|
116 |
-
#: app/views/admin/page.phtml:252
|
117 |
-
msgid "This is only a reference guide and yours may vary slightly"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: app/views/admin/page.phtml:258
|
121 |
-
msgid "Transient Caching"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: app/views/admin/page.phtml:265
|
125 |
-
msgid "Turn on transient caching"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: app/views/admin/page.phtml:268
|
129 |
-
#, php-format
|
130 |
-
msgid ""
|
131 |
-
"Transient caching will save you ~80% on load times, however please note that "
|
132 |
-
"this will break active links etc."
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#: app/views/admin/page.phtml:283
|
136 |
-
msgid "Shortcode Support"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#: app/views/admin/page.phtml:292
|
140 |
-
msgid "Click to use shortcode"
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: app/views/admin/page.phtml:294
|
144 |
-
msgid ""
|
145 |
-
"Tick if you would like to use a shortcode instead of the default behaviour"
|
146 |
-
msgstr ""
|
147 |
-
|
148 |
-
#: app/views/admin/page.phtml:308
|
149 |
-
msgid ""
|
150 |
-
"For a list of available shortcode options with explanations please visit the "
|
151 |
-
"following page:"
|
152 |
-
msgstr ""
|
153 |
-
|
154 |
-
#: app/views/admin/page.phtml:311
|
155 |
-
msgid "Shortcode Options"
|
156 |
-
msgstr ""
|
157 |
-
|
158 |
-
#: app/views/admin/page.phtml:319
|
159 |
-
msgid "Available Shortcode Options/Values"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: app/views/admin/page.phtml:323 app/views/admin/page.phtml:351
|
163 |
-
msgid "Option"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: app/views/admin/page.phtml:324
|
167 |
-
msgid "Values"
|
168 |
-
msgstr ""
|
169 |
-
|
170 |
-
#: app/views/admin/page.phtml:346
|
171 |
-
msgid "Sorry, there are no available options"
|
172 |
-
msgstr ""
|
173 |
-
|
174 |
-
#: app/views/admin/page.phtml:352
|
175 |
-
msgid "Example Value"
|
176 |
-
msgstr ""
|
177 |
-
|
178 |
-
#: app/views/admin/page.phtml:400 app/views/admin/page.phtml:1401
|
179 |
-
#: app/views/admin/page.phtml:1545
|
180 |
-
msgid "e.g"
|
181 |
-
msgstr ""
|
182 |
-
|
183 |
-
#: app/views/admin/page.phtml:413
|
184 |
-
msgid "Click Button Settings"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#: app/views/admin/page.phtml:419
|
188 |
-
msgid "Click Button Title"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: app/views/admin/page.phtml:421
|
192 |
-
msgid "This is the title under the 3 lines of the click button"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: app/views/admin/page.phtml:431
|
196 |
-
msgid "Click Button Image"
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
#: app/views/admin/page.phtml:433
|
200 |
-
msgid ""
|
201 |
-
"This is the click button that replaces the 3 lines. If empty, the 3 lines "
|
202 |
-
"will be used"
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
#: app/views/admin/page.phtml:445 app/views/admin/page.phtml:483
|
206 |
-
#: app/views/admin/page.phtml:685 app/views/admin/page.phtml:901
|
207 |
-
#: app/views/admin/page.phtml:921
|
208 |
-
msgid "Upload Image"
|
209 |
-
msgstr ""
|
210 |
-
|
211 |
-
#: app/views/admin/page.phtml:454
|
212 |
-
msgid "Change click menu to an X on click"
|
213 |
-
msgstr ""
|
214 |
-
|
215 |
-
#: app/views/admin/page.phtml:457
|
216 |
-
msgid "Tick this if you would like the 3 lines to turn into an x once clicked"
|
217 |
-
msgstr ""
|
218 |
-
|
219 |
-
#: app/views/admin/page.phtml:469
|
220 |
-
msgid "Click Button Image When Clicked"
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: app/views/admin/page.phtml:471
|
224 |
-
msgid ""
|
225 |
-
"This is the click button image that replaces the 3 lines when clicked. If "
|
226 |
-
"empty, the 3 lines will be used"
|
227 |
-
msgstr ""
|
228 |
-
|
229 |
-
#: app/views/admin/page.phtml:495
|
230 |
-
msgid "Fixed Positioning"
|
231 |
-
msgstr ""
|
232 |
-
|
233 |
-
#: app/views/admin/page.phtml:497
|
234 |
-
msgid ""
|
235 |
-
"Tick this if you would like the click button to remain in the same place "
|
236 |
-
"when scrolling"
|
237 |
-
msgstr ""
|
238 |
-
|
239 |
-
#: app/views/admin/page.phtml:510
|
240 |
-
msgid "Click Trigger"
|
241 |
-
msgstr ""
|
242 |
-
|
243 |
-
#: app/views/admin/page.phtml:512
|
244 |
-
msgid "You can set a custom ID or class for custom triggers here if you wish."
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#: app/views/admin/page.phtml:525
|
248 |
-
msgid "Click Button Size Settings"
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#: app/views/admin/page.phtml:531
|
252 |
-
msgid "Width"
|
253 |
-
msgstr ""
|
254 |
-
|
255 |
-
#: app/views/admin/page.phtml:533
|
256 |
-
msgid "This is the width of the individual 3 lines"
|
257 |
-
msgstr ""
|
258 |
-
|
259 |
-
#: app/views/admin/page.phtml:540 app/views/admin/page.phtml:554
|
260 |
-
#: app/views/admin/page.phtml:570 app/views/admin/page.phtml:598
|
261 |
-
#: app/views/admin/page.phtml:1247 app/views/admin/page.phtml:1264
|
262 |
-
#: app/views/admin/page.phtml:1278 app/views/admin/page.phtml:1322
|
263 |
-
#: app/views/admin/page.phtml:1349 app/views/admin/page.phtml:1363
|
264 |
-
#: app/views/admin/page.phtml:1538
|
265 |
-
msgid "px"
|
266 |
-
msgstr ""
|
267 |
-
|
268 |
-
#: app/views/admin/page.phtml:545
|
269 |
-
msgid "Height"
|
270 |
-
msgstr ""
|
271 |
-
|
272 |
-
#: app/views/admin/page.phtml:547
|
273 |
-
msgid "This is the height of the individual 3 lines"
|
274 |
-
msgstr ""
|
275 |
-
|
276 |
-
#: app/views/admin/page.phtml:561
|
277 |
-
msgid "Margin"
|
278 |
-
msgstr ""
|
279 |
-
|
280 |
-
#: app/views/admin/page.phtml:563
|
281 |
-
msgid "This is the margin between the individual 3 lines"
|
282 |
-
msgstr ""
|
283 |
-
|
284 |
-
#: app/views/admin/page.phtml:583
|
285 |
-
msgid "Click Button Location Settings"
|
286 |
-
msgstr ""
|
287 |
-
|
288 |
-
#: app/views/admin/page.phtml:589 app/views/admin/page.phtml:747
|
289 |
-
msgid "Top"
|
290 |
-
msgstr ""
|
291 |
-
|
292 |
-
#: app/views/admin/page.phtml:591
|
293 |
-
msgid ""
|
294 |
-
"This is the distance from the top of the page in px that the click button "
|
295 |
-
"will be displayed"
|
296 |
-
msgstr ""
|
297 |
-
|
298 |
-
#: app/views/admin/page.phtml:603
|
299 |
-
msgid "Left/Right Distance"
|
300 |
-
msgstr ""
|
301 |
-
|
302 |
-
#: app/views/admin/page.phtml:605
|
303 |
-
msgid ""
|
304 |
-
"This is the distance from the right/left of the page (as defined below) in % "
|
305 |
-
"that the menu will be displayed"
|
306 |
-
msgstr ""
|
307 |
-
|
308 |
-
#: app/views/admin/page.phtml:619
|
309 |
-
msgid "Left/Right"
|
310 |
-
msgstr ""
|
311 |
-
|
312 |
-
#: app/views/admin/page.phtml:621
|
313 |
-
msgid ""
|
314 |
-
"This defines whether the menu button is shown as a percentage from the left "
|
315 |
-
"or right"
|
316 |
-
msgstr ""
|
317 |
-
|
318 |
-
#: app/views/admin/page.phtml:651
|
319 |
-
msgid "Menu Settings"
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: app/views/admin/page.phtml:660
|
323 |
-
msgid "This is the title at the top of the responsive menu"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#: app/views/admin/page.phtml:671
|
327 |
-
msgid "Menu Image"
|
328 |
-
msgstr ""
|
329 |
-
|
330 |
-
#: app/views/admin/page.phtml:673
|
331 |
-
msgid ""
|
332 |
-
"This is the image that sits next to the responsive menu title. The best size "
|
333 |
-
"is 32px x 32px"
|
334 |
-
msgstr ""
|
335 |
-
|
336 |
-
#: app/views/admin/page.phtml:695
|
337 |
-
msgid "Choose Menu To Responsify"
|
338 |
-
msgstr ""
|
339 |
-
|
340 |
-
#: app/views/admin/page.phtml:697
|
341 |
-
msgid "This is the menu that will be used responsively"
|
342 |
-
msgstr ""
|
343 |
-
|
344 |
-
#: app/views/admin/page.phtml:717
|
345 |
-
msgid "You haven't set up any site menus yet"
|
346 |
-
msgstr ""
|
347 |
-
|
348 |
-
#: app/views/admin/page.phtml:726
|
349 |
-
msgid "Slide Side"
|
350 |
-
msgstr ""
|
351 |
-
|
352 |
-
#: app/views/admin/page.phtml:728
|
353 |
-
msgid "This is the side of the screen from which the menu will slide"
|
354 |
-
msgstr ""
|
355 |
-
|
356 |
-
#: app/views/admin/page.phtml:735 app/views/admin/page.phtml:1288
|
357 |
-
#: app/views/admin/page.phtml:1295
|
358 |
-
msgid "Left"
|
359 |
-
msgstr ""
|
360 |
-
|
361 |
-
#: app/views/admin/page.phtml:741 app/views/admin/page.phtml:1305
|
362 |
-
msgid "Right"
|
363 |
-
msgstr ""
|
364 |
-
|
365 |
-
#: app/views/admin/page.phtml:753
|
366 |
-
msgid "Bottom"
|
367 |
-
msgstr ""
|
368 |
-
|
369 |
-
#: app/views/admin/page.phtml:766
|
370 |
-
msgid "Choose Theme Location Menu To Responsify"
|
371 |
-
msgstr ""
|
372 |
-
|
373 |
-
#: app/views/admin/page.phtml:768
|
374 |
-
msgid ""
|
375 |
-
"The menu assigned to this theme location (registered with register_nav_menu) "
|
376 |
-
"will be used for displaying the responsive menu (useful if you use a plugin "
|
377 |
-
"like polylang)"
|
378 |
-
msgstr ""
|
379 |
-
|
380 |
-
#: app/views/admin/page.phtml:787
|
381 |
-
msgid "None"
|
382 |
-
msgstr ""
|
383 |
-
|
384 |
-
#: app/views/admin/page.phtml:794
|
385 |
-
msgid "You haven't set up any menus location yet"
|
386 |
-
msgstr ""
|
387 |
-
|
388 |
-
#: app/views/admin/page.phtml:802
|
389 |
-
msgid "Menu Title Link"
|
390 |
-
msgstr ""
|
391 |
-
|
392 |
-
#: app/views/admin/page.phtml:804
|
393 |
-
msgid "This is the link location for the title"
|
394 |
-
msgstr ""
|
395 |
-
|
396 |
-
#: app/views/admin/page.phtml:814
|
397 |
-
msgid "Menu Title Link Location"
|
398 |
-
msgstr ""
|
399 |
-
|
400 |
-
#: app/views/admin/page.phtml:816
|
401 |
-
msgid "This is where your title page will be opened once clicked"
|
402 |
-
msgstr ""
|
403 |
-
|
404 |
-
#: app/views/admin/page.phtml:823
|
405 |
-
msgid "New Tab"
|
406 |
-
msgstr ""
|
407 |
-
|
408 |
-
#: app/views/admin/page.phtml:829
|
409 |
-
msgid "Same Page"
|
410 |
-
msgstr ""
|
411 |
-
|
412 |
-
#: app/views/admin/page.phtml:835
|
413 |
-
msgid "Parent Page"
|
414 |
-
msgstr ""
|
415 |
-
|
416 |
-
#: app/views/admin/page.phtml:841
|
417 |
-
msgid "Full Window Body"
|
418 |
-
msgstr ""
|
419 |
-
|
420 |
-
#: app/views/admin/page.phtml:852
|
421 |
-
msgid "Sub Menu Arrow Settings"
|
422 |
-
msgstr ""
|
423 |
-
|
424 |
-
#: app/views/admin/page.phtml:858
|
425 |
-
msgid "Active Geometric Shape"
|
426 |
-
msgstr ""
|
427 |
-
|
428 |
-
#: app/views/admin/page.phtml:869
|
429 |
-
msgid "Inactive Geometric Shape"
|
430 |
-
msgstr ""
|
431 |
-
|
432 |
-
#: app/views/admin/page.phtml:882
|
433 |
-
msgid "You can find a list of Geometric HTML shape codes below"
|
434 |
-
msgstr ""
|
435 |
-
|
436 |
-
#: app/views/admin/page.phtml:889
|
437 |
-
msgid "Active Image"
|
438 |
-
msgstr ""
|
439 |
-
|
440 |
-
#: app/views/admin/page.phtml:909
|
441 |
-
msgid "Inactive Image"
|
442 |
-
msgstr ""
|
443 |
-
|
444 |
-
#: app/views/admin/page.phtml:932
|
445 |
-
msgid ""
|
446 |
-
"Images have preference over shapes, to use HTML shapes please leave the "
|
447 |
-
"image field blank"
|
448 |
-
msgstr ""
|
449 |
-
|
450 |
-
#: app/views/admin/page.phtml:939
|
451 |
-
msgid "Colour Settings"
|
452 |
-
msgstr ""
|
453 |
-
|
454 |
-
#: app/views/admin/page.phtml:941
|
455 |
-
msgid "Background Colours"
|
456 |
-
msgstr ""
|
457 |
-
|
458 |
-
#: app/views/admin/page.phtml:945
|
459 |
-
msgid "Click Button"
|
460 |
-
msgstr ""
|
461 |
-
|
462 |
-
#: app/views/admin/page.phtml:953
|
463 |
-
msgid "Click Button Line & Text Colour"
|
464 |
-
msgstr ""
|
465 |
-
|
466 |
-
#: app/views/admin/page.phtml:955
|
467 |
-
msgid "This is the colour of the 3 lines and text for the click button"
|
468 |
-
msgstr ""
|
469 |
-
|
470 |
-
#: app/views/admin/page.phtml:968
|
471 |
-
msgid "Click Button Background Colour"
|
472 |
-
msgstr ""
|
473 |
-
|
474 |
-
#: app/views/admin/page.phtml:970
|
475 |
-
msgid "This is the background colour of the 3 lines container"
|
476 |
-
msgstr ""
|
477 |
-
|
478 |
-
#: app/views/admin/page.phtml:985
|
479 |
-
msgid "Click Button Background Transparent"
|
480 |
-
msgstr ""
|
481 |
-
|
482 |
-
#: app/views/admin/page.phtml:987
|
483 |
-
msgid ""
|
484 |
-
"Tick this if you would like a transparent background on the click button"
|
485 |
-
msgstr ""
|
486 |
-
|
487 |
-
#: app/views/admin/page.phtml:1007
|
488 |
-
msgid "Main Menu"
|
489 |
-
msgstr ""
|
490 |
-
|
491 |
-
#: app/views/admin/page.phtml:1015
|
492 |
-
msgid "Menu Background Colour"
|
493 |
-
msgstr ""
|
494 |
-
|
495 |
-
#: app/views/admin/page.phtml:1017
|
496 |
-
msgid "This is the background colour of the expanded menu"
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
#: app/views/admin/page.phtml:1030
|
500 |
-
msgid "Menu Background Hover Colour"
|
501 |
-
msgstr ""
|
502 |
-
|
503 |
-
#: app/views/admin/page.phtml:1032
|
504 |
-
msgid "This is the hover background colour of the expanded menu"
|
505 |
-
msgstr ""
|
506 |
-
|
507 |
-
#: app/views/admin/page.phtml:1047
|
508 |
-
msgid "Menu Link Border Colour"
|
509 |
-
msgstr ""
|
510 |
-
|
511 |
-
#: app/views/admin/page.phtml:1049
|
512 |
-
msgid "This is the border colour of the menu links"
|
513 |
-
msgstr ""
|
514 |
-
|
515 |
-
#: app/views/admin/page.phtml:1062
|
516 |
-
msgid "Title Background Colour"
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
-
#: app/views/admin/page.phtml:1064
|
520 |
-
msgid "This is the background colour of the menu title"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
-
#: app/views/admin/page.phtml:1079
|
524 |
-
msgid "Current Page Link Background Colour"
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
#: app/views/admin/page.phtml:1081
|
528 |
-
msgid "This is the background colour of the current page link"
|
529 |
-
msgstr ""
|
530 |
-
|
531 |
-
#: app/views/admin/page.phtml:1094
|
532 |
-
msgid "Current Page Link Background Hover Colour"
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: app/views/admin/page.phtml:1096
|
536 |
-
msgid "This is the hover background colour of the current page link"
|
537 |
-
msgstr ""
|
538 |
-
|
539 |
-
#: app/views/admin/page.phtml:1110
|
540 |
-
msgid "Text Colours"
|
541 |
-
msgstr ""
|
542 |
-
|
543 |
-
#: app/views/admin/page.phtml:1119
|
544 |
-
msgid "Menu Title Colour"
|
545 |
-
msgstr ""
|
546 |
-
|
547 |
-
#: app/views/admin/page.phtml:1121
|
548 |
-
msgid "This is the text colour of the menu title"
|
549 |
-
msgstr ""
|
550 |
-
|
551 |
-
#: app/views/admin/page.phtml:1134
|
552 |
-
msgid "Menu Title Hover Colour"
|
553 |
-
msgstr ""
|
554 |
-
|
555 |
-
#: app/views/admin/page.phtml:1136
|
556 |
-
msgid "This is the hover colour of the menu title"
|
557 |
-
msgstr ""
|
558 |
-
|
559 |
-
#: app/views/admin/page.phtml:1151
|
560 |
-
msgid "Menu Link Colour"
|
561 |
-
msgstr ""
|
562 |
-
|
563 |
-
#: app/views/admin/page.phtml:1153
|
564 |
-
msgid "This is the text colour of the menu links"
|
565 |
-
msgstr ""
|
566 |
-
|
567 |
-
#: app/views/admin/page.phtml:1166
|
568 |
-
msgid "Menu Link Hover Colour"
|
569 |
-
msgstr ""
|
570 |
-
|
571 |
-
#: app/views/admin/page.phtml:1168
|
572 |
-
msgid "This is the text hover colour of the menu links"
|
573 |
-
msgstr ""
|
574 |
-
|
575 |
-
#: app/views/admin/page.phtml:1184
|
576 |
-
msgid "Current Page Link Colour"
|
577 |
-
msgstr ""
|
578 |
-
|
579 |
-
#: app/views/admin/page.phtml:1186
|
580 |
-
msgid "This is the text colour of the current page link"
|
581 |
-
msgstr ""
|
582 |
-
|
583 |
-
#: app/views/admin/page.phtml:1199
|
584 |
-
msgid "Current Page Link Hover Colour"
|
585 |
-
msgstr ""
|
586 |
-
|
587 |
-
#: app/views/admin/page.phtml:1201
|
588 |
-
msgid "This is the text hover colour of the current page link"
|
589 |
-
msgstr ""
|
590 |
-
|
591 |
-
#: app/views/admin/page.phtml:1218
|
592 |
-
msgid "Style Settings"
|
593 |
-
msgstr ""
|
594 |
-
|
595 |
-
#: app/views/admin/page.phtml:1225
|
596 |
-
msgid "Font"
|
597 |
-
msgstr ""
|
598 |
-
|
599 |
-
#: app/views/admin/page.phtml:1227
|
600 |
-
msgid "Enter a font name below, if empty your default site font will be used"
|
601 |
-
msgstr ""
|
602 |
-
|
603 |
-
#: app/views/admin/page.phtml:1238
|
604 |
-
msgid "Font Size"
|
605 |
-
msgstr ""
|
606 |
-
|
607 |
-
#: app/views/admin/page.phtml:1240
|
608 |
-
msgid "Enter a font size in pixels below"
|
609 |
-
msgstr ""
|
610 |
-
|
611 |
-
#: app/views/admin/page.phtml:1240 app/views/admin/page.phtml:1257
|
612 |
-
#: app/views/admin/page.phtml:1271 app/views/admin/page.phtml:1288
|
613 |
-
#: app/views/admin/page.phtml:1315 app/views/admin/page.phtml:1417
|
614 |
-
#: app/views/admin/page.phtml:1431 app/views/admin/page.phtml:1583
|
615 |
-
msgid "default"
|
616 |
-
msgstr ""
|
617 |
-
|
618 |
-
#: app/views/admin/page.phtml:1255
|
619 |
-
msgid "Click Button Font Size"
|
620 |
-
msgstr ""
|
621 |
-
|
622 |
-
#: app/views/admin/page.phtml:1257
|
623 |
-
msgid "Enter a click button font size in pixels below"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: app/views/admin/page.phtml:1269
|
627 |
-
msgid "Title Font Size"
|
628 |
-
msgstr ""
|
629 |
-
|
630 |
-
#: app/views/admin/page.phtml:1271
|
631 |
-
msgid "Enter a title font size in pixels below"
|
632 |
-
msgstr ""
|
633 |
-
|
634 |
-
#: app/views/admin/page.phtml:1286
|
635 |
-
msgid "Text Alignment"
|
636 |
-
msgstr ""
|
637 |
-
|
638 |
-
#: app/views/admin/page.phtml:1288
|
639 |
-
msgid "Enter a text alignment option below"
|
640 |
-
msgstr ""
|
641 |
-
|
642 |
-
#: app/views/admin/page.phtml:1300
|
643 |
-
msgid "Centre"
|
644 |
-
msgstr ""
|
645 |
-
|
646 |
-
#: app/views/admin/page.phtml:1313
|
647 |
-
msgid "Links Height"
|
648 |
-
msgstr ""
|
649 |
-
|
650 |
-
#: app/views/admin/page.phtml:1315
|
651 |
-
msgid "Enter a link height size in pixels below"
|
652 |
-
msgstr ""
|
653 |
-
|
654 |
-
#: app/views/admin/page.phtml:1330
|
655 |
-
msgid ""
|
656 |
-
"Setting the below two values to the same number will give you a fixed width "
|
657 |
-
"effect"
|
658 |
-
msgstr ""
|
659 |
-
|
660 |
-
#: app/views/admin/page.phtml:1340
|
661 |
-
msgid "Minimum Width"
|
662 |
-
msgstr ""
|
663 |
-
|
664 |
-
#: app/views/admin/page.phtml:1342
|
665 |
-
msgid "Enter a minimum menu width size in pixels below"
|
666 |
-
msgstr ""
|
667 |
-
|
668 |
-
#: app/views/admin/page.phtml:1354
|
669 |
-
msgid "Maximum Width"
|
670 |
-
msgstr ""
|
671 |
-
|
672 |
-
#: app/views/admin/page.phtml:1356
|
673 |
-
msgid "Enter a maximum menu width size in pixels below"
|
674 |
-
msgstr ""
|
675 |
-
|
676 |
-
#: app/views/admin/page.phtml:1371
|
677 |
-
msgid "Animation Settings"
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#: app/views/admin/page.phtml:1377
|
681 |
-
msgid "Slide Animation"
|
682 |
-
msgstr ""
|
683 |
-
|
684 |
-
#: app/views/admin/page.phtml:1379
|
685 |
-
msgid "Choose the type of animation applied to the menu"
|
686 |
-
msgstr ""
|
687 |
-
|
688 |
-
#: app/views/admin/page.phtml:1386
|
689 |
-
msgid "Overlay"
|
690 |
-
msgstr ""
|
691 |
-
|
692 |
-
#: app/views/admin/page.phtml:1391
|
693 |
-
msgid "Push"
|
694 |
-
msgstr ""
|
695 |
-
|
696 |
-
#: app/views/admin/page.phtml:1399
|
697 |
-
msgid "Page Wrappers CSS"
|
698 |
-
msgstr ""
|
699 |
-
|
700 |
-
#: app/views/admin/page.phtml:1401
|
701 |
-
msgid ""
|
702 |
-
"This is the CSS of the wrapper you want to push when using the push animation"
|
703 |
-
msgstr ""
|
704 |
-
|
705 |
-
#: app/views/admin/page.phtml:1415
|
706 |
-
msgid "Animation Speed"
|
707 |
-
msgstr ""
|
708 |
-
|
709 |
-
#: app/views/admin/page.phtml:1417
|
710 |
-
msgid "Enter a speed in seconds below of the slide animation"
|
711 |
-
msgstr ""
|
712 |
-
|
713 |
-
#: app/views/admin/page.phtml:1424 app/views/admin/page.phtml:1438
|
714 |
-
msgid "seconds"
|
715 |
-
msgstr ""
|
716 |
-
|
717 |
-
#: app/views/admin/page.phtml:1429
|
718 |
-
msgid "Transition Speed"
|
719 |
-
msgstr ""
|
720 |
-
|
721 |
-
#: app/views/admin/page.phtml:1431
|
722 |
-
msgid "Enter a speed in seconds below of the hover transition effect"
|
723 |
-
msgstr ""
|
724 |
-
|
725 |
-
#: app/views/admin/page.phtml:1445
|
726 |
-
msgid "Accordion Animation For Sub-Menus"
|
727 |
-
msgstr ""
|
728 |
-
|
729 |
-
#: app/views/admin/page.phtml:1447
|
730 |
-
msgid "Tick to enable the accordion animation for sub-menu items"
|
731 |
-
msgstr ""
|
732 |
-
|
733 |
-
#: app/views/admin/page.phtml:1460
|
734 |
-
msgid "Push button with Animation"
|
735 |
-
msgstr ""
|
736 |
-
|
737 |
-
#: app/views/admin/page.phtml:1462
|
738 |
-
msgid "Tick to enable the click button to be pushed with animation"
|
739 |
-
msgstr ""
|
740 |
-
|
741 |
-
#: app/views/admin/page.phtml:1480
|
742 |
-
msgid "Additional HTML Content Settings"
|
743 |
-
msgstr ""
|
744 |
-
|
745 |
-
#: app/views/admin/page.phtml:1487
|
746 |
-
msgid "Additional HTML Content"
|
747 |
-
msgstr ""
|
748 |
-
|
749 |
-
#: app/views/admin/page.phtml:1489
|
750 |
-
msgid ""
|
751 |
-
"Enter any additional HTML you may want below, useful for advertisement "
|
752 |
-
"banners etc. (accepts shortcodes)"
|
753 |
-
msgstr ""
|
754 |
-
|
755 |
-
#: app/views/admin/page.phtml:1496
|
756 |
-
msgid "Additional HTML Content Positioning"
|
757 |
-
msgstr ""
|
758 |
-
|
759 |
-
#: app/views/admin/page.phtml:1498
|
760 |
-
msgid "Select where you would like the additional HTML content to appear"
|
761 |
-
msgstr ""
|
762 |
-
|
763 |
-
#: app/views/admin/page.phtml:1505 app/views/admin/page.phtml:1627
|
764 |
-
msgid "Above Menu Links"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#: app/views/admin/page.phtml:1510 app/views/admin/page.phtml:1632
|
768 |
-
msgid "Below Menu Links"
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#: app/views/admin/page.phtml:1523
|
772 |
-
msgid "Menu Advanced Settings"
|
773 |
-
msgstr ""
|
774 |
-
|
775 |
-
#: app/views/admin/page.phtml:1529
|
776 |
-
msgid "Menu Breakpoint"
|
777 |
-
msgstr ""
|
778 |
-
|
779 |
-
#: app/views/admin/page.phtml:1531
|
780 |
-
msgid ""
|
781 |
-
"This is the point where the responsive menu will be visible in px width of "
|
782 |
-
"the browser"
|
783 |
-
msgstr ""
|
784 |
-
|
785 |
-
#: app/views/admin/page.phtml:1543
|
786 |
-
msgid "CSS of Menu To Hide"
|
787 |
-
msgstr ""
|
788 |
-
|
789 |
-
#: app/views/admin/page.phtml:1545
|
790 |
-
msgid ""
|
791 |
-
"This is the CSS of the menu you want to hide once the responsive menu shows"
|
792 |
-
msgstr ""
|
793 |
-
|
794 |
-
#: app/views/admin/page.phtml:1559
|
795 |
-
msgid "Menu Depth"
|
796 |
-
msgstr ""
|
797 |
-
|
798 |
-
#: app/views/admin/page.phtml:1561
|
799 |
-
msgid "This is how deep into your menu tree will be visible (max"
|
800 |
-
msgstr ""
|
801 |
-
|
802 |
-
#: app/views/admin/page.phtml:1580
|
803 |
-
msgid "Menu Width"
|
804 |
-
msgstr ""
|
805 |
-
|
806 |
-
#: app/views/admin/page.phtml:1582
|
807 |
-
msgid "This is the width the menu takes up across the page once expanded"
|
808 |
-
msgstr ""
|
809 |
-
|
810 |
-
#: app/views/admin/page.phtml:1603
|
811 |
-
msgid "Remove Search Box"
|
812 |
-
msgstr ""
|
813 |
-
|
814 |
-
#: app/views/admin/page.phtml:1605
|
815 |
-
msgid "Tick if you would like to remove the search box"
|
816 |
-
msgstr ""
|
817 |
-
|
818 |
-
#: app/views/admin/page.phtml:1618
|
819 |
-
msgid "Search Box Positioning"
|
820 |
-
msgstr ""
|
821 |
-
|
822 |
-
#: app/views/admin/page.phtml:1620
|
823 |
-
msgid "Select where you would like the search box to appear"
|
824 |
-
msgstr ""
|
825 |
-
|
826 |
-
#: app/views/admin/page.phtml:1642
|
827 |
-
msgid "Click to Close Menu on Link Click"
|
828 |
-
msgstr ""
|
829 |
-
|
830 |
-
#: app/views/admin/page.phtml:1644
|
831 |
-
msgid ""
|
832 |
-
"Tick if you would like to close the menu on each link click, useful for "
|
833 |
-
"single page sites"
|
834 |
-
msgstr ""
|
835 |
-
|
836 |
-
#: app/views/admin/page.phtml:1657
|
837 |
-
msgid "Auto Expand Current Parent Items"
|
838 |
-
msgstr ""
|
839 |
-
|
840 |
-
#: app/views/admin/page.phtml:1659
|
841 |
-
msgid ""
|
842 |
-
"Tick if you would like to make the current pages children expanded "
|
843 |
-
"automatically"
|
844 |
-
msgstr ""
|
845 |
-
|
846 |
-
#: app/views/admin/page.phtml:1673
|
847 |
-
msgid "Auto Expand Sub-Menus"
|
848 |
-
msgstr ""
|
849 |
-
|
850 |
-
#: app/views/admin/page.phtml:1675
|
851 |
-
msgid "Tick if you would like sub-menus to be automatically expanded"
|
852 |
-
msgstr ""
|
853 |
-
|
854 |
-
#: app/views/admin/page.phtml:1688
|
855 |
-
msgid "Ignore Parent Clicks"
|
856 |
-
msgstr ""
|
857 |
-
|
858 |
-
#: app/views/admin/page.phtml:1690
|
859 |
-
msgid "Tick if you would like to ignore clicks on parent links"
|
860 |
-
msgstr ""
|
861 |
-
|
862 |
-
#: app/views/admin/page.phtml:1704
|
863 |
-
msgid "Click to Close Menu on Page Click"
|
864 |
-
msgstr ""
|
865 |
-
|
866 |
-
#: app/views/admin/page.phtml:1706
|
867 |
-
msgid "Tick if you would like to close the current menu on page clicks"
|
868 |
-
msgstr ""
|
869 |
-
|
870 |
-
#: app/views/admin/page.phtml:1727
|
871 |
-
msgid "Technical Settings"
|
872 |
-
msgstr ""
|
873 |
-
|
874 |
-
#: app/views/admin/page.phtml:1733
|
875 |
-
msgid "Minify output"
|
876 |
-
msgstr ""
|
877 |
-
|
878 |
-
#: app/views/admin/page.phtml:1735
|
879 |
-
msgid ""
|
880 |
-
"Tick if you would like to minify the script/style output. Saves up to 50% in "
|
881 |
-
"file size"
|
882 |
-
msgstr ""
|
883 |
-
|
884 |
-
#: app/views/admin/page.phtml:1748
|
885 |
-
msgid "Include script in footer"
|
886 |
-
msgstr ""
|
887 |
-
|
888 |
-
#: app/views/admin/page.phtml:1750
|
889 |
-
msgid "Tick if you would like to include your jQuery script in footer"
|
890 |
-
msgstr ""
|
891 |
-
|
892 |
-
#: app/views/admin/page.phtml:1764
|
893 |
-
msgid "Include CSS/JS as external files"
|
894 |
-
msgstr ""
|
895 |
-
|
896 |
-
#: app/views/admin/page.phtml:1766
|
897 |
-
msgid "Tick if you would like to include CSS and jQuery as external files"
|
898 |
-
msgstr ""
|
899 |
-
|
900 |
-
#: app/views/admin/page.phtml:1777
|
901 |
-
msgid "Remove CSS !important tags"
|
902 |
-
msgstr ""
|
903 |
-
|
904 |
-
#: app/views/admin/page.phtml:1780
|
905 |
-
msgid "Tick this if you would like to remove the !important tags from the CSS"
|
906 |
-
msgstr ""
|
907 |
-
|
908 |
-
#: app/views/admin/page.phtml:1781
|
909 |
-
msgid ""
|
910 |
-
"Ticking this will make it easier to over-ride the styles but may make the "
|
911 |
-
"default settings not display well"
|
912 |
-
msgstr ""
|
913 |
-
|
914 |
-
#: app/views/admin/page.phtml:1795
|
915 |
-
msgid "Custom Walker"
|
916 |
-
msgstr ""
|
917 |
-
|
918 |
-
#: app/views/admin/page.phtml:1803
|
919 |
-
msgid "Specify you own Walker for the menu (wp_nav_menu parameter)"
|
920 |
-
msgstr ""
|
921 |
-
|
922 |
-
#: app/views/admin/page.phtml:1804
|
923 |
-
msgid ""
|
924 |
-
"For advanced users only - if you don't know what you're doing please leave "
|
925 |
-
"alone"
|
926 |
-
msgstr ""
|
927 |
-
|
928 |
-
#: app/views/admin/page.phtml:1833
|
929 |
-
msgid "Import File"
|
930 |
-
msgstr ""
|
931 |
-
|
932 |
-
#: app/views/admin/page.phtml:1840
|
933 |
-
msgid "Import Options From XML"
|
934 |
-
msgstr ""
|
935 |
-
|
936 |
-
#: app/views/admin/page.phtml:1859
|
937 |
-
msgid "Export Current Options"
|
938 |
-
msgstr ""
|
939 |
-
|
940 |
-
#: app/views/admin/page.phtml:1874
|
941 |
-
msgid ""
|
942 |
-
"Please be warned this will reset all your current settings, please export "
|
943 |
-
"your current files first"
|
944 |
-
msgstr ""
|
945 |
-
|
946 |
-
#: app/views/admin/page.phtml:1880
|
947 |
-
msgid "Reset ALL Current Options"
|
948 |
-
msgstr ""
|
949 |
-
|
950 |
-
#: app/views/admin/page.phtml:1895 app/views/admin/page.phtml:1908
|
951 |
-
msgid ""
|
952 |
-
"This feature is only available in the pro version, please click below to "
|
953 |
-
"upgrade"
|
954 |
-
msgstr ""
|
955 |
-
|
956 |
-
#: app/views/admin/page.phtml:1898 app/views/admin/page.phtml:1911
|
957 |
-
msgid "Upgrade now"
|
958 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wpml-config.xml
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<wpml-config>
|
2 |
-
<admin-texts>
|
3 |
-
<key name="RMOptions">
|
4 |
-
<key name="RM" />
|
5 |
-
<key name="RMClickTitle" />
|
6 |
-
<key name="RMTitle" />
|
7 |
-
<key name="RMTitleLink" />
|
8 |
-
<key name="RMImage" />
|
9 |
-
<key name="RMClickImage" />
|
10 |
-
<key name="RMHtml" />
|
11 |
-
<key name="RMClickImgClicked" />
|
12 |
-
</key>
|
13 |
-
</admin-texts>
|
14 |
-
</wpml-config>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|