PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.6.4
VikBooking Hotel Booking Engine & PMS v1.6.4
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
vikbooking / admin / views / config / tmpl / default_one.php

default_one.php in VikBooking Hotel Booking Engine & PMS 1.6.4, at admin/views/config/tmpl/default_one.php

828 lines 41.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage com_vikbooking
5 * @author Alessio Gaggii - e4j - Extensionsforjoomla.com
6 * @copyright Copyright (C) 2018 e4j - Extensionsforjoomla.com. All rights reserved.
7 * @license GNU General Public License version 2 or later; see LICENSE
8 * @link https://vikwp.com
9 */
10
11 defined('ABSPATH') or die('No script kiddies please!');
12
13 JHtml::fetch('jquery.framework', true, true);
14 JHtml::fetch('script', VBO_SITE_URI.'resources/jquery-ui.sortable.min.js');
15
16 $config = VBOFactory::getConfig();
17
18 $vbo_app = VikBooking::getVboApplication();
19 $timeopst = VikBooking::getTimeOpenStore(true);
20 if (is_array($timeopst)) {
21 $openat = VikBooking::getHoursMinutes($timeopst[0]);
22 $closeat = VikBooking::getHoursMinutes($timeopst[1]);
23 } else {
24 $openat = array(0, 0);
25 $closeat = array(0, 0);
26 }
27 $wcheckintime = "<select name=\"timeopenstorefh\">\n";
28 for ($i = 0; $i <= 23; $i++) {
29 if ($i < 10) {
30 $in = "0".$i;
31 } else {
32 $in = $i;
33 }
34 $stat = $openat[0] == $i ? " selected=\"selected\"" : "";
35 $wcheckintime .= "<option value=\"".$i."\"".$stat.">".$in."</option>\n";
36 }
37 $wcheckintime .= "</select> <select name=\"timeopenstorefm\">\n";
38 for ($i = 0; $i <= 59; $i++) {
39 if ($i < 10) {
40 $in = "0".$i;
41 } else {
42 $in = $i;
43 }
44 $stat = $openat[1] == $i ? " selected=\"selected\"" : "";
45 $wcheckintime .= "<option value=\"".$i."\"".$stat.">".$in."</option>\n";
46 }
47 $wcheckintime .= "</select>\n";
48 $wcheckouttime = "<select name=\"timeopenstoreth\">\n";
49 for ($i = 0; $i <= 23; $i++) {
50 if ($i < 10) {
51 $in = "0".$i;
52 } else {
53 $in = $i;
54 }
55 $stat = $closeat[0]==$i ? " selected=\"selected\"" : "";
56 $wcheckouttime .= "<option value=\"".$i."\"".$stat.">".$in."</option>\n";
57 }
58 $wcheckouttime .= "</select> <select name=\"timeopenstoretm\">\n";
59 for ($i = 0; $i <= 59; $i++) {
60 if ($i < 10) {
61 $in = "0".$i;
62 } else {
63 $in = $i;
64 }
65 $stat = $closeat[1] == $i ? " selected=\"selected\"" : "";
66 $wcheckouttime .= "<option value=\"".$i."\"".$stat.">".$in."</option>\n";
67 }
68 $wcheckouttime .= "</select>\n";
69
70 $calendartype = VikBooking::calendarType(true);
71
72 $globnumadults = VikBooking::getSearchNumAdults(true);
73 $adultsparts = explode('-', $globnumadults);
74 $globnumchildren = VikBooking::getSearchNumChildren(true);
75 $childrenparts = explode('-', $globnumchildren);
76
77 $maxdatefuture = VikBooking::getMaxDateFuture();
78 $maxdate_val = intval(substr($maxdatefuture, 1, (strlen($maxdatefuture) - 1)));
79 $maxdate_interval = substr($maxdatefuture, -1, 1);
80
81 $smartseach_type = VikBooking::getSmartSearchType(true);
82
83 $vbosef = file_exists(VBO_SITE_PATH.DS.'router.php');
84
85 $vcm_autoupd = (int)VikBooking::vcmAutoUpdate();
86 $chat_enabled = (int)VikBooking::chatEnabled();
87 $precheckin_enabled = (int)VikBooking::precheckinEnabled();
88 $upselling_enabled = (int)VikBooking::upsellingEnabled();
89
90 $nowdf = VikBooking::getDateFormat(true);
91 if ($nowdf == "%d/%m/%Y") {
92 $usedf = 'd/m/Y';
93 } elseif ($nowdf == "%m/%d/%Y") {
94 $usedf = 'm/d/Y';
95 } else {
96 $usedf = 'Y/m/d';
97 }
98 $datesep = VikBooking::getDateSeparator(true);
99 ?>
100 <script type="text/javascript">
101
102 function vboRemoveElement(el) {
103 return (elem=document.getElementById(el)).parentNode.removeChild(elem);
104 }
105
106 function vboAddClosingDate() {
107 var cdfrom = document.getElementById('cdfrom').value;
108 var cdto = document.getElementById('cdto').value;
109 if (cdfrom.length && cdto.length) {
110 var cdcounter = document.getElementsByClassName('vbo-closed-date-entry').length + 1;
111 var cdstring = "<div class=\"vbo-closed-date-entry\" id=\"vbo-closed-date-entry"+cdcounter+"\"><span>"+cdfrom+"</span> - <span>"+cdto+"</span> <span class=\"vbo-closed-date-rm\" onclick=\"vboRemoveElement('vbo-closed-date-entry"+cdcounter+"');\"><i class=\"vboicn-cross\"></i> </span><input type=\"hidden\" name=\"cdsfrom[]\" value=\""+cdfrom+"\" /><input type=\"hidden\" name=\"cdsto[]\" value=\""+cdto+"\" /></div>";
112 document.getElementById('vbo-config-closed-dates').innerHTML += cdstring;
113 document.getElementById('cdfrom').value = '';
114 document.getElementById('cdto').value = '';
115 }
116 }
117
118 function vboChangeMultiRoomSearch(type) {
119 if (type == 'classic') {
120 jQuery('.vbo-param-container[data-vbosearchtpl="classic"]').show();
121 } else {
122 jQuery('.vbo-param-container[data-vbosearchtpl="classic"]').hide();
123 }
124 }
125
126 var chatenabled = <?php echo $chat_enabled; ?>;
127 var precheckinenabled = <?php echo $precheckin_enabled; ?>;
128
129 jQuery(document).ready(function() {
130
131 jQuery('input[name="chatenabled"]').change(function() {
132 if (chatenabled < 0) {
133 jQuery('#chat-params-tr').hide();
134 return;
135 }
136 if (jQuery(this).is(':checked') && parseInt(jQuery(this).val()) > 0) {
137 jQuery('#chat-params-tr').fadeIn();
138 } else {
139 jQuery('#chat-params-tr').fadeOut();
140 }
141 });
142
143 jQuery('input[name="precheckinenabled"]').change(function() {
144 if (precheckinenabled < 0) {
145 jQuery('.precheckin-params-tr').hide();
146 return;
147 }
148 if (jQuery(this).is(':checked') && parseInt(jQuery(this).val()) > 0) {
149 jQuery('.precheckin-params-tr').fadeIn();
150 } else {
151 jQuery('.precheckin-params-tr').fadeOut();
152 }
153 });
154
155 });
156
157 </script>
158
159 <div class="vbo-config-maintab-left">
160 <fieldset class="adminform">
161 <div class="vbo-params-wrap">
162 <legend class="adminlegend"><?php echo JText::translate('VBOCPARAMBOOKING'); ?></legend>
163 <div class="vbo-params-container">
164 <div class="vbo-param-container">
165 <div class="vbo-param-label">
166 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBCONFIGVCMAUTOUPD'), 'content' => JText::translate('VBCONFIGVCMAUTOUPDHELP'), 'icon_class' => 'vboicn-lifebuoy')); ?>
167 <?php echo JText::translate('VBCONFIGVCMAUTOUPD'); ?>
168 </div>
169 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('vcmautoupd', JText::translate('VBYES'), JText::translate('VBNO'), ($vcm_autoupd < 0 ? 0 : $vcm_autoupd), 1, 0).($vcm_autoupd < 0 ? '<span class="vbo-config-warn">'.JText::translate('VBCONFIGVCMAUTOUPDMISS').'</span>' : ''); ?></div>
170 </div>
171 <div class="vbo-param-container">
172 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONEFIVE'); ?></div>
173 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('allowbooking', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::allowBooking(), 1, 0); ?></div>
174 </div>
175 <div class="vbo-param-container">
176 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONESIX'); ?></div>
177 <div class="vbo-param-setting"><textarea name="disabledbookingmsg" rows="5" cols="50"><?php echo JHtml::fetch('esc_textarea', VikBooking::getDisabledBookingMsg()); ?></textarea></div>
178 </div>
179 <div class="vbo-param-container">
180 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONETENSIX'); ?></div>
181 <div class="vbo-param-setting"><input type="text" name="adminemail" value="<?php echo JHtml::fetch('esc_attr', VikBooking::getAdminMail()); ?>" size="35"/></div>
182 </div>
183 <div class="vbo-param-container">
184 <div class="vbo-param-label"><?php echo JText::translate('VBSENDEREMAIL'); ?></div>
185 <div class="vbo-param-setting"><input type="text" name="senderemail" value="<?php echo JHtml::fetch('esc_attr', VikBooking::getSenderMail()); ?>" size="35"/></div>
186 </div>
187 <div class="vbo-param-container">
188 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONESEVEN'); ?></div>
189 <div class="vbo-param-setting"><?php echo $wcheckintime; ?></div>
190 </div>
191 <div class="vbo-param-container">
192 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONETHREE'); ?></div>
193 <div class="vbo-param-setting"><?php echo $wcheckouttime; ?></div>
194 </div>
195 <div class="vbo-param-container">
196 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONEELEVEN'); ?></div>
197 <div class="vbo-param-setting">
198 <select name="dateformat">
199 <option value="%d/%m/%Y"<?php echo ($nowdf=="%d/%m/%Y" ? " selected=\"selected\"" : ""); ?>><?php echo JText::translate('VBCONFIGONETWELVE'); ?></option>
200 <option value="%m/%d/%Y"<?php echo ($nowdf=="%m/%d/%Y" ? " selected=\"selected\"" : ""); ?>><?php echo JText::translate('VBCONFIGONEMDY'); ?></option>
201 <option value="%Y/%m/%d"<?php echo ($nowdf=="%Y/%m/%d" ? " selected=\"selected\"" : ""); ?>><?php echo JText::translate('VBCONFIGONETENTHREE'); ?></option>
202 </select>
203 </div>
204 </div>
205 <div class="vbo-param-container">
206 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGDATESEP'); ?></div>
207 <div class="vbo-param-setting"><input type="text" name="datesep" value="<?php echo JHtml::fetch('esc_attr', $datesep); ?>" size="3"/></div>
208 </div>
209 <?php
210 $resmodcanc = VikBooking::getReservationModCanc();
211 $resmodcancmin = VikBooking::getReservationModCancMin();
212 ?>
213 <div class="vbo-param-container">
214 <div class="vbo-param-label">
215 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBOCONFIGALLOWMODCANC'), 'content' => JText::translate('VBOCONFIGALLOWMODCANCHELP'))); ?>
216 <?php echo JText::translate('VBOCONFIGALLOWMODCANC'); ?>
217 </div>
218 <div class="vbo-param-setting">
219 <script type="text/javascript">
220 function vboChangeResModCanc(mode) {
221 mode = parseInt(mode);
222 document.getElementById('vbo-resmodcanc-lim').style.display = (mode > 0 ? 'flex' : 'none');
223 }
224 </script>
225 <div class="vbo-resmodcanc-block">
226 <select name="resmodcanc" onchange="vboChangeResModCanc(this.value);">
227 <option value="0"<?php echo $resmodcanc == 0 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGMODCANC0'); ?></option>
228 <option value="1"<?php echo $resmodcanc == 1 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGMODCANC1'); ?></option>
229 <option value="2"<?php echo $resmodcanc == 2 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGMODCANC2'); ?></option>
230 <option value="3"<?php echo $resmodcanc == 3 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGMODCANC3'); ?></option>
231 <option value="4"<?php echo $resmodcanc == 4 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGMODCANC4'); ?></option>
232 </select>
233 </div>
234 </div>
235 </div>
236 <div class="vbo-param-container vbo-resmodcanc-lim vbo-param-nested" id="vbo-resmodcanc-lim" style="display: <?php echo $resmodcanc > 0 ? 'flex' : 'none'; ?>;">
237 <div class="vbo-param-label"><label for="resmodcancmin"><?php echo JText::translate('VBOCONFIGMODCANCMINDAYS'); ?></label></div>
238 <div class="vbo-param-setting"><input type="number" min="0" name="resmodcancmin" id="resmodcancmin" style="margin: 0;" value="<?php echo $resmodcancmin; ?>" /></div>
239 </div>
240 <div class="vbo-param-container">
241 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGTODAYBOOKINGS'); ?></div>
242 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('todaybookings', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::todayBookings(), 1, 0); ?></div>
243 </div>
244 <div class="vbo-param-container">
245 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONECOUPONS'); ?></div>
246 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('enablecoupons', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::couponsEnabled(), 1, 0); ?></div>
247 </div>
248 <div class="vbo-param-container">
249 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGENABLECUSTOMERPIN'); ?></div>
250 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('enablepin', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::customersPinEnabled(), 1, 0); ?></div>
251 </div>
252 <div class="vbo-param-container">
253 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONETENFIVE'); ?></div>
254 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('tokenform', JText::translate('VBYES'), JText::translate('VBNO'), (VikBooking::tokenForm() ? 'yes' : 0), 'yes', 0); ?></div>
255 </div>
256 <div class="vbo-param-container">
257 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGREQUIRELOGIN'); ?></div>
258 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('requirelogin', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::requireLogin(), 1, 0); ?></div>
259 </div>
260 <div class="vbo-param-container">
261 <div class="vbo-param-label"><?php echo $vbo_app->createPopover(array('title' => JText::translate('VBCONFIGAUTODISTFEATURE'), 'content' => JText::translate('VBCONFIGAUTODISTFEATUREHELP'))); ?> <?php echo JText::translate('VBCONFIGAUTODISTFEATURE'); ?></div>
262 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('autoroomunit', JText::translate('VBYES'), JText::translate('VBNO'), (VikBooking::autoRoomUnit() ? 1 : 0), 1, 0); ?></div>
263 </div>
264 <div class="vbo-param-container">
265 <div class="vbo-param-label"><?php echo $vbo_app->createPopover(array('title' => JText::translate('VBCONFIGCHATENABLED'), 'content' => JText::translate('VBCONFIGCHATENABLEDHELP'))); ?> <?php echo JText::translate('VBCONFIGCHATENABLED'); ?></div>
266 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('chatenabled', JText::translate('VBYES'), JText::translate('VBNO'), ($chat_enabled < 0 ? 0 : $chat_enabled), 1, 0).($chat_enabled < 0 ? '<span class="vbo-config-warn">'.JText::translate('VBCONFIGVCMAUTOUPDMISS').'</span>' : ''); ?></div>
267 </div>
268 <?php
269 $chat_params = VikBooking::getChatParams();
270 ?>
271 <div class="vbo-param-container vbo-param-nested" id="chat-params-tr" style="display: <?php echo $chat_enabled > 0 ? 'flex' : 'none'; ?>;">
272 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGCHATPARAMS'); ?></div>
273 <div class="vbo-param-setting">
274 <select name="chat_res_status" style="max-width: 345px; margin: 0;">
275 <option value="confirmed;standby;cancelled"<?php echo isset($chat_params->res_status) && count($chat_params->res_status) >= 3 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGCHATRESSTATALL'); ?></option>
276 <option value="confirmed"<?php echo isset($chat_params->res_status) && count($chat_params->res_status) === 1 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGCHATRESSTATCONF'); ?></option>
277 </select>
278 <div style="margin-top: 5px;">
279 <select name="chat_av_type" style="max-width: 345px; margin: 0;">
280 <option value="checkin"<?php echo isset($chat_params->av_type) && $chat_params->av_type == 'checkin' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGCHATAVCHECKIN'); ?></option>
281 <option value="checkout"<?php echo isset($chat_params->av_type) && $chat_params->av_type == 'checkout' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGCHATAVCHECKOUT'); ?></option>
282 </select>
283 <input type="number" name="chat_av_days" value="<?php echo isset($chat_params->av_days) ? (int)$chat_params->av_days : '0'; ?>" style="margin: 0;"/>
284 </div>
285 </div>
286 </div>
287 <div class="vbo-param-container">
288 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGPRECHECKINENABLED'); ?></div>
289 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('precheckinenabled', JText::translate('VBYES'), JText::translate('VBNO'), $precheckin_enabled, 1, 0); ?></div>
290 </div>
291 <div class="vbo-param-container vbo-param-nested precheckin-params-tr" style="display: <?php echo $precheckin_enabled > 0 ? 'flex' : 'none'; ?>;">
292 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGPRECHECKINMIND'); ?></div>
293 <div class="vbo-param-setting"><input type="number" name="precheckinminoffset" value="<?php echo VikBooking::precheckinMinOffset(); ?>" min="0" /></div>
294 </div>
295 <div class="vbo-param-container vbo-param-nested precheckin-params-tr" style="display: <?php echo $precheckin_enabled > 0 ? 'flex' : 'none'; ?>;">
296 <div class="vbo-param-label"><?php echo JText::translate('VBO_CONF_CHECKIN_DATA'); ?></div>
297 <div class="vbo-param-setting">
298 <?php
299 $checkin_data = $config->getString('checkindata', 'basic');
300 ?>
301 <select name="checkindata">
302 <option value="basic"<?php echo $checkin_data == 'basic' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_CONF_CHECKIN_DATA_BASIC'); ?></option>
303 <?php
304 foreach (VBOCheckinPax::getDrivers() as $checkin_driver) {
305 $cust_driver_obj = VBOCheckinPax::getInstance($checkin_driver);
306 $cust_driver_name = $cust_driver_obj !== null ? $cust_driver_obj->getName() : '???';
307 ?>
308 <option value="<?php echo $checkin_driver; ?>" <?php echo $checkin_data == $checkin_driver ? ' selected="selected"' : ''; ?>><?php echo JText::sprintf('VBO_CONF_CHECKIN_DATA_CUSTOM', $cust_driver_name); ?></option>
309 <?php
310 }
311 ?>
312 </select>
313 </div>
314 </div>
315 <div class="vbo-param-container">
316 <div class="vbo-param-label"><?php echo $vbo_app->createPopover(array('title' => JText::translate('VBCONFIGUPSELLINGENABLED'), 'content' => JText::translate('VBCONFIGUPSELLINGENABLEDHELP'))); ?> <?php echo JText::translate('VBCONFIGUPSELLINGENABLED'); ?></div>
317 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('upsellingenabled', JText::translate('VBYES'), JText::translate('VBNO'), $upselling_enabled, 1, 0); ?></div>
318 </div>
319 <?php
320 $orphans_calcm = VikBooking::orphansCalculation();
321 ?>
322 <div class="vbo-param-container">
323 <div class="vbo-param-label"><?php echo $vbo_app->createPopover(array('title' => JText::translate('VBOCONFIGORPHANSCALCM'), 'content' => JText::translate('VBOCONFIGORPHANSCALCMHELP'))); ?> <?php echo JText::translate('VBOCONFIGORPHANSCALCM'); ?></div>
324 <div class="vbo-param-setting">
325 <select name="orphanscal">
326 <option value="next"<?php echo $orphans_calcm == 'next' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGORPHANSCALCMN'); ?></option>
327 <option value="prevnext"<?php echo $orphans_calcm == 'prevnext' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGORPHANSCALCMPN'); ?></option>
328 </select>
329 </div>
330 </div>
331 </div>
332 </div>
333 </fieldset>
334 </div>
335
336 <div class="vbo-config-maintab-right">
337
338 <fieldset class="adminform">
339 <div class="vbo-params-wrap">
340 <legend class="adminlegend"><?php echo JText::translate('VBCONFIGSEARCHPARAMS'); ?></legend>
341 <div class="vbo-params-container">
342 <div class="vbo-param-container">
343 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGMINDAYSADVANCE'); ?></div>
344 <?php
345 /**
346 * Do not ever change the argument "true" from VikBooking::getMinDaysAdvance(true); as it is
347 * now used to detect that the back-end is calling it, and no closing dates should be applied.
348 *
349 * @since 1.14 (J) - 1.4.0 (WP)
350 */
351 ?>
352 <div class="vbo-param-setting"><input type="number" name="mindaysadvance" value="<?php echo VikBooking::getMinDaysAdvance(true); ?>" min="0"/></div>
353 </div>
354 <div class="vbo-param-container">
355 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHDEFNIGHTS'); ?></div>
356 <div class="vbo-param-setting"><input type="number" name="autodefcalnights" value="<?php echo VikBooking::getDefaultNightsCalendar(true); ?>" min="0"/></div>
357 </div>
358 <div class="vbo-param-container">
359 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHPNUMROOM'); ?></div>
360 <div class="vbo-param-setting"><input type="number" name="numrooms" value="<?php echo VikBooking::getSearchNumRooms(true); ?>" min="0"/></div>
361 </div>
362 <div class="vbo-param-container">
363 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHPNUMADULTS'); ?></div>
364 <div class="vbo-param-setting"><?php echo JText::translate('VBCONFIGSEARCHPFROM'); ?> <input type="number" name="numadultsfrom" value="<?php echo $adultsparts[0]; ?>" min="0"/> &nbsp;&nbsp; <?php echo JText::translate('VBCONFIGSEARCHPTO'); ?> <input type="number" name="numadultsto" value="<?php echo $adultsparts[1]; ?>" min="0"/></div>
365 </div>
366 <div class="vbo-param-container">
367 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHPNUMCHILDREN'); ?></div>
368 <div class="vbo-param-setting"><?php echo JText::translate('VBCONFIGSEARCHPFROM'); ?> <input type="number" name="numchildrenfrom" value="<?php echo $childrenparts[0]; ?>" min="0"/> &nbsp;&nbsp; <?php echo JText::translate('VBCONFIGSEARCHPTO'); ?> <input type="number" name="numchildrento" value="<?php echo $childrenparts[1]; ?>" min="0"/></div>
369 </div>
370 <div class="vbo-param-container">
371 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHPMAXDATEFUT'); ?></div>
372 <div class="vbo-param-setting"><input type="number" name="maxdate" value="<?php echo $maxdate_val; ?>" min="0"/> <select name="maxdateinterval"><option value="d"<?php echo $maxdate_interval == 'd' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPMAXDATEDAYS'); ?></option><option value="w"<?php echo $maxdate_interval == 'w' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPMAXDATEWEEKS'); ?></option><option value="m"<?php echo $maxdate_interval == 'm' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPMAXDATEMONTHS'); ?></option><option value="y"<?php echo $maxdate_interval == 'y' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPMAXDATEYEARS'); ?></option></select></div>
373 </div>
374
375 <div class="vbo-param-container">
376 <div class="vbo-param-label">
377 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBCONFIGCLOSINGDATES'), 'content' => JText::translate('VBCONFIGCLOSINGDATESHELP'))); ?>
378 <?php echo JText::translate('VBCONFIGCLOSINGDATES'); ?>
379 </div>
380 <div class="vbo-param-setting">
381 <div style="width: 100%; display: inline-block;" class="btn-toolbar" id="filter-bar">
382 <div class="btn-group pull-left">
383 <?php echo $vbo_app->getCalendar('', 'cdfrom', 'cdfrom', $nowdf, array('class'=>'', 'size'=>'10', 'maxlength'=>'19', 'todayBtn' => 'true', 'placeholder' => JText::translate('VBCONFIGCLOSINGDATEFROM'))); ?>
384 </div>
385 <div class="btn-group pull-left">
386 <?php echo $vbo_app->getCalendar('', 'cdto', 'cdto', $nowdf, array('class'=>'', 'size'=>'10', 'maxlength'=>'19', 'todayBtn' => 'true', 'placeholder' => JText::translate('VBCONFIGCLOSINGDATETO'))); ?>
387 </div>
388 <div class="btn-group pull-left">
389 <button type="button" class="btn vbo-config-btn" onclick="vboAddClosingDate();"><?php VikBookingIcons::e('plus-circle'); ?> <?php echo JText::translate('VBCONFIGCLOSINGDATEADD'); ?></button>
390 </div>
391 </div>
392 <div id="vbo-config-closed-dates" style="display: block;">
393 <?php
394 $cur_closed_dates = VikBooking::getClosingDates();
395 if (is_array($cur_closed_dates) && count($cur_closed_dates)) {
396 foreach ($cur_closed_dates as $kcd => $vcd) {
397 echo "<div class=\"vbo-closed-date-entry\" id=\"vbo-closed-date-entry".$kcd."\"><span>".date(str_replace("/", $datesep, $usedf), $vcd['from'])."</span> - <span>".date(str_replace("/", $datesep, $usedf), $vcd['to'])."</span> <span class=\"vbo-closed-date-rm\" onclick=\"vboRemoveElement('vbo-closed-date-entry".$kcd."');\"><i class=\"vboicn-cross\"></i> </span><input type=\"hidden\" name=\"cdsfrom[]\" value=\"".date($usedf, $vcd['from'])."\" /><input type=\"hidden\" name=\"cdsto[]\" value=\"".date($usedf, $vcd['to'])."\" /></div>"."\n";
398 }
399 }
400 ?>
401 </div>
402 </div>
403 </div>
404
405 <?php
406 /**
407 * Choose the template file for the View "search". If compact, the "smartsearch" parameter
408 * will be ignored and set to hidden, because this new template does not use it.
409 *
410 * @since 1.13
411 */
412 $search_tpl = VikBooking::searchResultsTmpl();
413 ?>
414 <div class="vbo-param-container">
415 <div class="vbo-param-label"><?php echo JText::translate('VBOCONFIGSEARCHRESTPL'); ?></div>
416 <div class="vbo-param-setting">
417 <select name="srcrtpl" onchange="vboChangeMultiRoomSearch(this.value);">
418 <option value="compact"<?php echo $search_tpl == 'compact' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGSEARCHRESTPLCM'); ?></option>
419 <option value="classic"<?php echo $search_tpl == 'classic' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCONFIGSEARCHRESTPLCL'); ?></option>
420 </select>
421 </div>
422 </div>
423 <div class="vbo-param-container vbo-param-nested" data-vbosearchtpl="classic" style="<?php echo $search_tpl != 'classic' ? 'display: none;' : ''; ?>">
424 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSEARCHPSMARTSEARCH'); ?></div>
425 <div class="vbo-param-setting">
426 <select name="smartsearch">
427 <option value="dynamic"<?php echo $smartseach_type == 'dynamic' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPSMARTSEARCHDYN'); ?></option>
428 <option value="automatic"<?php echo $smartseach_type == 'automatic' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIGSEARCHPSMARTSEARCHAUTO'); ?></option>
429 </select>
430 </div>
431 </div>
432 <div class="vbo-param-container vbo-param-nested" data-vbosearchtpl="classic" style="<?php echo $search_tpl != 'classic' ? 'display: none;' : ''; ?>">
433 <div class="vbo-param-label">
434 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBO_INTERACTIVE_MAP_BOOK'), 'content' => JText::translate('VBO_INTERACTIVE_MAP_BOOK_HELP'))); ?>
435 <?php echo JText::translate('VBO_INTERACTIVE_MAP_BOOK'); ?>
436 </div>
437 <div class="vbo-param-setting">
438 <?php echo $vbo_app->printYesNoButtons('interactive_map', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::interactiveMapEnabled(), 1, 0); ?>
439 </div>
440 </div>
441 <?php
442 $searchsugg = (int)VikBooking::showSearchSuggestions();
443 ?>
444 <div class="vbo-param-container">
445 <div class="vbo-param-label"><?php echo JText::translate('VBOCONFIGSHOWSEARCHSUGG'); ?></div>
446 <div class="vbo-param-setting">
447 <select name="searchsuggestions">
448 <option value="1"<?php echo $searchsugg == 1 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOYESWITHAVAILABILITY'); ?></option>
449 <option value="2"<?php echo $searchsugg == 2 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOYESNOAVAILABILITY'); ?></option>
450 <option value="0"<?php echo $searchsugg == 0 ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBNO'); ?></option>
451 </select>
452 </div>
453 </div>
454 <div class="vbo-param-container">
455 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONETENFOUR'); ?></div>
456 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('showcategories', JText::translate('VBYES'), JText::translate('VBNO'), (VikBooking::showCategoriesFront(true) ? 'yes' : 0), 'yes', 0); ?></div>
457 </div>
458 <div class="vbo-param-container">
459 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGSHOWCHILDREN'); ?></div>
460 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('showchildren', JText::translate('VBYES'), JText::translate('VBNO'), (VikBooking::showChildrenFront(true) ? 'yes' : 0), 'yes', 0); ?></div>
461 </div>
462 <div class="vbo-param-container">
463 <div class="vbo-param-label">
464 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBO_BOOK_SPLIT_STAYS'), 'content' => JText::translate('VBO_BOOK_SPLIT_STAYS_HELP'))); ?>
465 <?php echo JText::translate('VBO_BOOK_SPLIT_STAYS'); ?>
466 </div>
467 <div class="vbo-param-setting">
468 <?php
469 JText::script('VBO_SPLIT_STAY_RATIO_TEST');
470 $split_stay_ratio = $config->getFloat('split_stay_ratio', 50);
471 echo $vbo_app->printYesNoButtons('split_stay', JText::translate('VBYES'), JText::translate('VBNO'), (int)($split_stay_ratio > 0), 1, 0, 'vboToggleSplitStay(this.checked);');
472 ?>
473 </div>
474 </div>
475 <div class="vbo-param-container vbo-param-nested" data-config-type="split-stay" style="<?php echo $split_stay_ratio < 1 ? 'display: none;' : ''; ?>">
476 <div class="vbo-param-label">
477 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBO_SPLIT_STAYS_RATIO'), 'content' => JText::translate('VBO_SPLIT_STAYS_RATIO_HELP'))); ?>
478 <?php echo JText::translate('VBO_SPLIT_STAYS_RATIO'); ?>
479 </div>
480 <div class="vbo-param-setting">
481 <div class="input-append">
482 <input type="number" min="0" max="100" step="5" name="split_stay_ratio" value="<?php echo $split_stay_ratio > 0 ? $split_stay_ratio : '50';?>" />
483 <button type="button" class="btn">%</button>
484 </div>
485 </div>
486 </div>
487 <div class="vbo-param-container vbo-param-nested" data-config-type="split-stay" style="<?php echo $split_stay_ratio < 1 ? 'display: none;' : ''; ?>">
488 <div class="vbo-param-label"><?php echo JText::translate('VBOCRONSMSREMPARAMTEST'); ?></div>
489 <div class="vbo-param-setting">
490 <div class="input-append">
491 <input type="number" id="vbo-test-splitstay-nights" min="2" max="365" value="<?php echo rand(4, 10); ?>" />
492 <button type="button" class="btn"><?php echo JText::translate('VBDAYS'); ?></button>
493 <button type="button" class="btn vbo-config-btn vbo-btn-dont-append" onclick="vboTestSplitStay();"><?php echo JText::translate('VBRATESOVWRATESCALCULATORCALC'); ?></button>
494 </div>
495 <div class="vbo-param-setting-comment" data-config-type="split-stay"></div>
496 </div>
497 </div>
498
499 <script type="text/javascript">
500 function vboToggleSplitStay(active) {
501 if (active) {
502 jQuery('.vbo-param-container[data-config-type="split-stay"]').show();
503 } else {
504 jQuery('.vbo-param-container[data-config-type="split-stay"]').hide();
505 jQuery('.vbo-param-setting-comment[data-config-type="split-stay"]').text('');
506 }
507 }
508
509 function vboTestSplitStay() {
510 var nights = jQuery('#vbo-test-splitstay-nights').val() * 1;
511 nights = nights < 2 ? 2 : nights;
512
513 var ratio = jQuery('input[name="split_stay_ratio"]').val() * 1;
514 ratio = ratio < 1 ? 1 : ratio;
515 ratio = ratio > 100 ? 100 : ratio;
516
517 var transfers = Math.round(nights * ratio / 100);
518
519 // According to the current ratio (%s), a stay for %d night(s) will allow up to %d room transfer(s).
520 var help_text = Joomla.JText._('VBO_SPLIT_STAY_RATIO_TEST');
521 help_text = help_text.replace('%s', ratio + '%');
522 help_text = help_text.replace('%d', nights);
523 help_text = help_text.replace('%d', transfers);
524
525 jQuery('.vbo-param-setting-comment[data-config-type="split-stay"]').text(help_text);
526 }
527 </script>
528
529 </div>
530 </div>
531 </fieldset>
532
533 <fieldset class="adminform">
534 <div class="vbo-params-wrap">
535 <legend class="adminlegend"><?php echo JText::translate('VBOCPARAMSYSTEM'); ?></legend>
536 <div class="vbo-params-container">
537
538 <div class="vbo-param-container">
539 <div class="vbo-param-label"><?php echo JText::translate('VBO_APPEARANCE_PREF'); ?></div>
540 <div class="vbo-param-setting">
541 <?php
542 // prepare args for the multi-state toggle switch
543 $appearance_vals = array(
544 'light',
545 'auto',
546 'dark',
547 );
548 $appearance_lbls = array(
549 array(
550 'value' => '<i class="' . VikBookingIcons::i('sun') . '"></i>',
551 'title' => JText::translate('VBO_APPEARANCE_PREF_LIGHT'),
552 ),
553 array(
554 'value' => '<i class="' . VikBookingIcons::i('magic') . '"></i>',
555 'title' => JText::translate('VBO_APPEARANCE_PREF_AUTO'),
556 ),
557 array(
558 'value' => '<i class="' . VikBookingIcons::i('moon') . '"></i>',
559 'title' => JText::translate('VBO_APPEARANCE_PREF_DARK'),
560 ),
561 );
562 $appearance_attrs = array(
563 array(
564 'label_class' => 'vik-multiswitch-radiobtn-light',
565 'input' => array(
566 'onchange' => 'vboPreviewAppeareance(this.value)',
567 ),
568 ),
569 array(
570 'label_class' => 'vik-multiswitch-radiobtn-auto',
571 'input' => array(
572 'onchange' => 'vboPreviewAppeareance(this.value)',
573 ),
574 ),
575 array(
576 'label_class' => 'vik-multiswitch-radiobtn-dark',
577 'input' => array(
578 'onchange' => 'vboPreviewAppeareance(this.value)',
579 ),
580 ),
581 );
582 echo $vbo_app->multiStateToggleSwitchField('appearance_pref', VikBooking::getAppearancePref(), $appearance_vals, $appearance_lbls, $appearance_attrs);
583 ?>
584 </div>
585 </div>
586
587 <div class="vbo-param-container vbo-param-nested">
588 <div class="vbo-param-label"><?php echo JText::translate('VBO_APPEARANCE_PREF') . ' (front-end)'; ?></div>
589 <div class="vbo-param-setting">
590 <?php
591 $front_appearance = $config->getInt('appearance_front', 0);
592 ?>
593 <select name="appearance_front">
594 <option value="0"<?php echo !$front_appearance ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBPARAMPRICECALENDARDISABLED'); ?></option>
595 <option value="1"<?php echo $front_appearance ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBPARAMPRICECALENDARENABLED'); ?></option>
596 </select>
597 </div>
598 </div>
599
600 <script type="text/javascript">
601 /**
602 * Apply on the fly the preview of the selected
603 * appearance mode: light, auto, dark.
604 */
605 function vboPreviewAppeareance(mode) {
606 var vbo_css_base_uri = '<?php echo VBO_ADMIN_URI . (defined('ABSPATH') ? 'resources/' : '') . 'vbo-appearance-%s.css'; ?>';
607 var vbo_css_base_id = 'vbo-css-appearance-';
608 var vbo_css_modes = {
609 auto: vbo_css_base_uri.replace('%s', 'auto'),
610 dark: vbo_css_base_uri.replace('%s', 'dark'),
611 light: null
612 };
613 if (!vbo_css_modes.hasOwnProperty(mode)) {
614 return false;
615 }
616 // set/unset CSS files from DOM
617 for (var app_mode in vbo_css_modes) {
618 if (!vbo_css_modes.hasOwnProperty(app_mode) || !vbo_css_modes[app_mode]) {
619 continue;
620 }
621 if (app_mode == mode) {
622 // set this CSS file
623 jQuery('head').append('<link rel="stylesheet" id="' + vbo_css_base_id + app_mode + '" href="' + vbo_css_modes[app_mode] + '" media="all">');
624 } else {
625 // unset this CSS file
626 if (jQuery('link#' + vbo_css_base_id + app_mode).length) {
627 jQuery('link#' + vbo_css_base_id + app_mode).remove();
628 } else if (jQuery('link#' + vbo_css_base_id + app_mode + '-css').length) {
629 // WP framework may add "-css" as suffix to the given ID
630 jQuery('link#' + vbo_css_base_id + app_mode + '-css').remove();
631 }
632 }
633 }
634 }
635 </script>
636
637 <div class="vbo-param-container">
638 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGCRONKEY'); ?></div>
639 <div class="vbo-param-setting"><input type="text" name="cronkey" value="<?php echo JHtml::fetch('esc_attr', VikBooking::getCronKey()); ?>" size="6" /></div>
640 </div>
641 <div class="vbo-param-container">
642 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGMULTILANG'); ?></div>
643 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('multilang', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::allowMultiLanguage(true), 1, 0); ?></div>
644 </div>
645 <!-- @wponly we cannot display the setting for the SEF Router -->
646 <div class="vbo-param-container">
647 <div class="vbo-param-label"><?php echo JText::translate('VBLOADBOOTSTRAP'); ?></div>
648 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('loadbootstrap', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::loadBootstrap(true), 1, 0); ?></div>
649 </div>
650 <div class="vbo-param-container">
651 <div class="vbo-param-label"><?php echo JText::translate('VBOLOADFA'); ?></div>
652 <div class="vbo-param-setting"><?php echo $vbo_app->printYesNoButtons('usefa', JText::translate('VBYES'), JText::translate('VBNO'), (int)VikBooking::isFontAwesomeEnabled(true), 1, 0); ?></div>
653 </div>
654 <!-- @wponly jQuery main library should not be loaded as it's already included by WP -->
655 <!-- @wponly calendar type should be always jQuery -->
656 <div class="vbo-param-container">
657 <div class="vbo-param-label"><?php echo JText::translate('VBCONFIGONECALENDAR'); ?></div>
658 <div class="vbo-param-setting"><select name="calendar"><option value="jqueryui"<?php echo ($calendartype == "jqueryui" ? " selected=\"selected\"" : ""); ?>>jQuery UI</option></select></div>
659 </div>
660 <div class="vbo-param-container">
661 <div class="vbo-param-label"><?php echo JText::translate('VBO_GMAPS_APIKEY'); ?></div>
662 <div class="vbo-param-setting"><input type="text" name="gmapskey" value="<?php echo JHtml::fetch('esc_attr', VikBooking::getGoogleMapsKey()); ?>" size="30" /></div>
663 </div>
664 <div class="vbo-param-container">
665 <div class="vbo-param-label">
666 <?php echo JText::translate('VBOPREFCOUNTRIESORD'); ?>
667 <?php echo $vbo_app->createPopover(array('title' => JText::translate('VBOPREFCOUNTRIESORD'), 'content' => JText::translate('VBOPREFCOUNTRIESORDHELP'))); ?>
668 <div class="vbo-preferred-countries-edit-wrap">
669 <span onclick="vboDisplayCustomPrefCountries();"><?php VikBookingIcons::e('edit'); ?></span>
670 </div>
671 </div>
672 <div class="vbo-param-setting">
673 <ul class="vbo-preferred-countries-sortlist">
674 <?php
675 $preferred_countries = VikBooking::preferredCountriesOrdering(true);
676 foreach ($preferred_countries as $ccode => $langname) {
677 ?>
678 <li class="vbo-preferred-countries-elem">
679 <span><?php VikBookingIcons::e('ellipsis-v'); ?> <?php echo $langname; ?></span>
680 <input type="hidden" name="pref_countries[]" value="<?php echo $ccode; ?>" />
681 </li>
682 <?php
683 }
684 ?>
685 </ul>
686 <script type="text/javascript">
687 function vboDisplayCustomPrefCountries() {
688 var all_countries = new Array;
689 jQuery('input[name="pref_countries[]"]').each(function() {
690 all_countries.push(jQuery(this).val());
691 });
692 var current_countries = all_countries.join(', ');
693 var custom_countries = prompt("<?php echo addslashes(JText::translate('VBOPREFCOUNTRIESORD')); ?>", current_countries);
694 if (custom_countries != null && custom_countries != current_countries) {
695 jQuery('.vbo-preferred-countries-edit-wrap').append('<input type="hidden" name="cust_pref_countries" value="' + custom_countries + '"/>');
696 jQuery('#adminForm').find('input[name="task"]').val('saveconfig');
697 jQuery('#adminForm').submit();
698 }
699 }
700 jQuery(document).ready(function() {
701 jQuery('.vbo-preferred-countries-sortlist').sortable();
702 jQuery('.vbo-preferred-countries-sortlist').disableSelection();
703 });
704 </script>
705 </div>
706 </div>
707 </div>
708 </div>
709 </fieldset>
710
711 <!-- BACKUP -->
712
713 <fieldset class="adminform">
714 <div class="vbo-params-wrap">
715 <legend class="adminlegend"><?php echo JText::translate('VBO_CONFIG_BACKUP'); ?></legend>
716
717 <div class="vbo-params-container">
718
719 <!-- TYPE -->
720
721 <div class="vbo-param-container">
722 <div class="vbo-param-label"><?php echo JText::translate('VBO_CONFIG_BACKUP_TYPE'); ?></div>
723 <div class="vbo-param-setting">
724 <?php
725 $options = [];
726
727 foreach ($this->backupExportTypes as $type => $handler)
728 {
729 $options[] = JHtml::fetch('select.option', $type, $handler->getName());
730 }
731
732 $backup_export_type = $config->get('backuptype', 'full');
733 ?>
734 <select name="backuptype">
735 <?php echo JHtml::fetch('select.options', $options, 'value', 'text', $backup_export_type); ?>
736 </select>
737 <?php
738 // display a description for the export types
739 foreach ($this->backupExportTypes as $type => $handler)
740 {
741 ?>
742 <div class="vbo-param-setting-comment" id="backup_export_type_<?php echo $type; ?>" style="<?php echo $type === $backup_export_type ? '' : 'display: none;'; ?>">
743 <?php echo $handler->getDescription(); ?>
744 </div>
745 <?php
746 }
747 ?>
748 </div>
749 </div>
750
751 <!-- FOLDER -->
752
753 <div class="vbo-param-container">
754 <div class="vbo-param-label"><?php echo JText::translate('VBO_CONFIG_BACKUP_FOLDER'); ?></div>
755 <div class="vbo-param-setting">
756 <?php
757 // get saved path
758 $path = rtrim($config->get('backupfolder', ''), DIRECTORY_SEPARATOR);
759
760 // get system temporary path
761 $tmp_path = rtrim(JFactory::getApplication()->get('tmp_path', ''), DIRECTORY_SEPARATOR);
762
763 if (!$path)
764 {
765 $path = $tmp_path;
766 }
767 ?>
768 <input type="text" name="backupfolder" value="<?php echo $this->escape($path); ?>" size="64" />
769 <div class="vbo-param-setting-comment">
770 <?php echo JText::sprintf('VBO_CONFIG_BACKUP_FOLDER_HELP', (defined('ABSPATH') ? ABSPATH : JPATH_SITE)); ?>
771 </div>
772 </div>
773 </div>
774
775 </div>
776
777 <!-- BACK-UP MANAGEMENT - Button -->
778
779 <div class="vbo-param-container">
780 <div class="vbo-param-label">&nbsp;</div>
781 <div class="vbo-param-setting">
782 <a href="index.php?option=com_vikbooking&amp;view=backups" class="btn vbo-config-btn" id="backup-btn" target="_blank">
783 <?php echo JText::translate('VBO_CONFIG_BACKUP_MANAGE_BTN'); ?>
784 </a>
785 </div>
786 </div>
787
788 </div>
789
790 <script>
791 (function($) {
792 'use strict';
793
794 $(function() {
795 $('select[name="backuptype"]').on('change', function() {
796 const type = $(this).val();
797
798 $('#adminForm *[id^="backup_export_type_"]').hide();
799 $('#backup_export_type_' + type).show();
800 });
801 });
802 })(jQuery);
803 </script>
804
805 </fieldset>
806
807 <?php
808 /**
809 * @wponly trigger event onDisplayViewConfigGlobal to display additional parameters
810 */
811 $extra_forms = JFactory::getApplication()->triggerEvent('onDisplayViewConfigGlobal', array($this));
812 foreach ($extra_forms as $extra_form) {
813 foreach ($extra_form as $form_name => $form_html) {
814 ?>
815 <fieldset class="adminform">
816 <div class="vbo-params-wrap">
817 <legend class="adminlegend"><?php echo JText::translate($form_name); ?></legend>
818 <?php echo $form_html; ?>
819 </div>
820 </fieldset>
821 <?php
822 }
823 }
824 //
825 ?>
826
827 </div>
828