PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.16
VikBooking Hotel Booking Engine & PMS v1.8.16
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
← All changes | admin/views/orders/tmpl/default.php +33 -34 1.7.0 → 1.8.16 View file →
@@ -49,9 +49,10 @@
49 49
50 50 $cid = VikRequest::getVar('cid', array());
51 51 $pcust_id = $app->getUserStateFromRequest("vbo.orders.cust_id", 'cust_id', 0, 'int');
52 52 $pconfirmnumber = VikRequest::getString('confirmnumber', '', 'request');
53 -//Color tags
53 +
54 +// color tags
54 55 $colortags = VikBooking::loadBookingsColorTags();
55 56 $bctags_tip = '';
56 57 if (count($colortags) > 0) {
57 58 $bctags_tip = '<div class=\"vbo-blist-tip-bctag-subtip-inner\">';
@@ -59,9 +60,8 @@
59 60 $bctags_tip .= '<div class=\"vbo-blist-tip-bctag-subtip-circle hasTooltip\" data-ctagkey=\"'.$ctagk.'\" data-ctagcolor=\"'.$ctagv['color'].'\" title=\"'.addslashes(JText::translate($ctagv['name'])).'\"><div class=\"vbo-blist-tip-bctag-subtip-circlecont\" style=\"background-color: '.$ctagv['color'].';\"></div></div>';
60 61 }
61 62 $bctags_tip .= '</div>';
62 63 }
63 -//
64 64
65 65 if (empty($rows)) {
66 66 $rows = array();
67 67 ?>
@@ -246,9 +246,9 @@
246 246 <option value="-1"<?php echo $pchannel == '-1' ? ' selected="selected"' : ''; ?>>- <?php echo JText::translate('VBORDFROMSITE'); ?></option>
247 247 <?php
248 248 foreach ($all_channels as $o_channel) {
249 249 ?>
250 - <option value="<?php echo $o_channel; ?>"<?php echo $pchannel == $o_channel ? ' selected="selected"' : ''; ?>>- <?php echo ucwords($o_channel); ?></option>
250 + <option value="<?php echo JHtml::fetch('esc_attr', $o_channel); ?>"<?php echo $pchannel == $o_channel ? ' selected="selected"' : ''; ?>>- <?php echo ucwords($o_channel); ?></option>
251 251 <?php
252 252 }
253 253 }
254 254 ?>
@@ -263,10 +263,10 @@
263 263 foreach ($allrooms as $room) {
264 264 $rsel .= '<option value="'.$room['id'].'"'.(!empty($pidroom) && $pidroom == $room['id'] ? ' selected="selected"' : '').'>'.$room['name'].'</option>';
265 265 }
266 266 $rsel .= '</select>';
267 + echo $rsel;
267 268 }
268 - echo $rsel;
269 269 ?>
270 270 </div>
271 271 <?php
272 272 $pcategory_id = $app->getUserStateFromRequest("vbo.orders.category_id", 'category_id', 0, 'int');
@@ -278,9 +278,9 @@
278 278 <option value=""><?php echo JText::translate('VBOCATEGORYFILTER'); ?></option>
279 279 <?php
280 280 foreach ($this->categories as $catid => $catname) {
281 281 ?>
282 - <option value="<?php echo $catid; ?>"<?php echo $catid == $pcategory_id ? ' selected="selected"' : ''; ?>><?php echo $catname; ?></option>
282 + <option value="<?php echo JHtml::fetch('esc_attr', $catid); ?>"<?php echo $catid == $pcategory_id ? ' selected="selected"' : ''; ?>><?php echo $catname; ?></option>
283 283 <?php
284 284 }
285 285 ?>
286 286 </select>
@@ -302,9 +302,9 @@
302 302 $dbo->setQuery($q);
303 303 $allpayments = $dbo->loadAssocList();
304 304 foreach ($allpayments as $paym) {
305 305 ?>
306 - <option value="<?php echo $paym['id']; ?>"<?php echo $paym['id'] == $pidpayment ? ' selected="selected"' : ''; ?>><?php echo $paym['name']; ?></option>
306 + <option value="<?php echo (int) $paym['id']; ?>"<?php echo $paym['id'] == $pidpayment ? ' selected="selected"' : ''; ?>><?php echo $paym['name']; ?></option>
307 307 <?php
308 308 }
309 309 ?>
310 310 </select>
@@ -316,19 +316,22 @@
316 316 $pstatus = $app->getUserStateFromRequest("vbo.orders.status", 'status', '', 'string');
317 317 $filters_set = !empty($pstatus) || $filters_set;
318 318 $status_filter = !empty($pstatus) ? '&amp;status='.$pstatus : '';
319 319 ?>
320 - <optgroup label="<?php echo JText::translate('VBSTATUS'); ?>">
320 + <optgroup label="<?php echo JHtml::fetch('esc_attr', JText::translate('VBSTATUS')); ?>">
321 321 <option value="confirmed"<?php echo $pstatus == 'confirmed' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCONFIRMED'); ?></option>
322 322 <option value="standby"<?php echo $pstatus == 'standby' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBSTANDBY'); ?></option>
323 323 <option value="cancelled"<?php echo $pstatus == 'cancelled' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBCANCELLED'); ?></option>
324 - <option value="closure"<?php echo $pstatus == 'closure' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBDBTEXTROOMCLOSED'); ?></option>
324 + </optgroup>
325 + <optgroup label="<?php echo JHtml::fetch('esc_attr', JText::translate('VBPSHOWSEASONSTHREE')); ?>">
325 326 <option value="inquiry"<?php echo $pstatus == 'inquiry' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_BTYPE_INQUIRY'); ?></option>
326 327 <option value="request"<?php echo $pstatus == 'request' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_BTYPE_REQUEST'); ?></option>
328 + <option value="quote"<?php echo $pstatus == 'quote' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_BTYPE_QUOTE'); ?></option>
329 + <option value="overbooking"<?php echo $pstatus == 'overbooking' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_BTYPE_OVERBOOKING'); ?></option>
327 330 <option value="split_stay"<?php echo $pstatus == 'split_stay' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_SPLIT_STAY'); ?></option>
328 - <option value="overbooking"<?php echo $pstatus == 'overbooking' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBO_BTYPE_OVERBOOKING'); ?></option>
331 + <option value="closure"<?php echo $pstatus == 'closure' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBDBTEXTROOMCLOSED'); ?></option>
329 332 </optgroup>
330 - <optgroup label="<?php echo JText::translate('VBOCHECKEDSTATUS'); ?>">
333 + <optgroup label="<?php echo JHtml::fetch('esc_attr', JText::translate('VBOCHECKEDSTATUS')); ?>">
331 334 <option value="checkedin"<?php echo $pstatus == 'checkedin' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCHECKEDSTATUSIN'); ?></option>
332 335 <option value="checkedout"<?php echo $pstatus == 'checkedout' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCHECKEDSTATUSOUT'); ?></option>
333 336 <option value="noshow"<?php echo $pstatus == 'noshow' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCHECKEDSTATUSNOS'); ?></option>
334 337 <option value="none"<?php echo $pstatus == 'none' ? ' selected="selected"' : ''; ?>><?php echo JText::translate('VBOCHECKEDSTATUSZERO'); ?></option>
@@ -342,9 +345,9 @@
342 345 $pdatefiltfrom = $app->getUserStateFromRequest("vbo.orders.datefiltfrom", 'datefiltfrom', '', 'string');
343 346 $pdatefiltto = $app->getUserStateFromRequest("vbo.orders.datefiltto", 'datefiltto', '', 'string');
344 347 if (!empty($pdatefilt) && (!empty($pdatefiltfrom) || !empty($pdatefiltto))) {
345 348 $filters_set = true;
346 - $dates_filter = '&amp;datefilt='.$pdatefilt.(!empty($pdatefiltfrom) ? '&amp;datefiltfrom='.$pdatefiltfrom : '').(!empty($pdatefiltto) ? '&amp;datefiltto='.$pdatefiltto : '');
349 + $dates_filter = JHtml::fetch('esc_attr', '&amp;datefilt='.$pdatefilt.(!empty($pdatefiltfrom) ? '&amp;datefiltfrom='.$pdatefiltfrom : '').(!empty($pdatefiltto) ? '&amp;datefiltto='.$pdatefiltto : ''));
347 350 }
348 351 $datesel = '<select name="datefilt" onchange="vboToggleDateFilt(this.value);"><option value="">'.JText::translate('VBOFILTERBYDATES').'</option>';
349 352 $datesel .= '<option value="1"'.(!empty($pdatefilt) && $pdatefilt == 1 ? ' selected="selected"' : '').'>'.JText::translate('VBOFILTERDATEBOOK').'</option>';
350 353 $datesel .= '<option value="2"'.(!empty($pdatefilt) && $pdatefilt == 2 ? ' selected="selected"' : '').'>'.JText::translate('VBOFILTERDATEIN').'</option>';
@@ -353,9 +356,9 @@
353 356 echo $datesel;
354 357 ?>
355 358 </div>
356 359 <div class="btn-group pull-left" id="vbo-dates-cont" style="display: <?php echo (!empty($pdatefilt) && (!empty($pdatefiltfrom) || !empty($pdatefiltto)) ? 'inline-block' : 'none'); ?>;">
357 - <input type="text" id="vbo-date-from" placeholder="<?php echo JText::translate('VBNEWSEASONONE'); ?>" value="<?php echo $pdatefiltfrom; ?>" size="10" name="datefiltfrom" autocomplete="off" />&nbsp;-&nbsp;<input type="text" id="vbo-date-to" placeholder="<?php echo JText::translate('VBNEWSEASONTWO'); ?>" value="<?php echo $pdatefiltto; ?>" size="10" name="datefiltto" autocomplete="off" />
360 + <input type="text" id="vbo-date-from" placeholder="<?php echo JText::translate('VBNEWSEASONONE'); ?>" value="<?php echo JHtml::fetch('esc_attr', $pdatefiltfrom); ?>" size="10" name="datefiltfrom" autocomplete="off" />&nbsp;-&nbsp;<input type="text" id="vbo-date-to" placeholder="<?php echo JText::translate('VBNEWSEASONTWO'); ?>" value="<?php echo JHtml::fetch('esc_attr', $pdatefiltto); ?>" size="10" name="datefiltto" autocomplete="off" />
358 361 </div>
359 362 <div class="btn-group pull-left">
360 363 <button type="submit" class="btn btn-primary"><i class="icon-search"></i> <?php echo JText::translate('VBPVIEWORDERSSEARCHSUBM'); ?></button>
361 364 </div>
@@ -408,9 +411,9 @@
408 411 <th class="title center" width="100" align="center"><span><?php echo JText::translate('VBPVIEWORDERCHANNEL'); ?></span></th>
409 412 </tr>
410 413 </thead>
411 414 <?php
412 - $currencysymb = VikBooking::getCurrencySymb(true);
415 + $currencysymb = VikBooking::getCurrencySymb();
413 416 $monsmap = array(
414 417 JText::translate('VBSHORTMONTHONE'),
415 418 JText::translate('VBSHORTMONTHTWO'),
416 419 JText::translate('VBSHORTMONTHTHREE'),
@@ -598,9 +601,9 @@
598 601 <?php echo $custdata; ?>
599 602 </div>
600 603 <div class="vbo-customer-info-box-avatar vbo-customer-avatar-small">
601 604 <span>
602 - <img src="<?php echo strpos($customer_avatar, 'http') === 0 ? $customer_avatar : VBO_SITE_URI . 'resources/uploads/' . $customer_avatar; ?>" data-caption="<?php echo htmlspecialchars($avatar_caption); ?>" />
605 + <img src="<?php echo strpos($customer_avatar, 'http') === 0 ? $customer_avatar : VBO_SITE_URI . 'resources/uploads/' . $customer_avatar; ?>" data-caption="<?php echo htmlspecialchars($avatar_caption); ?>" decoding="async" loading="lazy" />
603 606 </span>
604 607 </div>
605 608 </div>
606 609 <?php
@@ -716,23 +719,20 @@
716 719 </td>
717 720 <td class="center">
718 721 <div class="vbo-bookingslist-total-wrap">
719 722 <div class="vbo-bookingslist-total-amount">
720 - <span><?php echo strlen($otacurrency) > 0 ? $otacurrency : $currencysymb; ?></span>
721 - <span><?php echo VikBooking::numberFormat($isdue); ?></span>
723 + <?php echo VikBooking::formatCurrencyNumber(VikBooking::numberFormat($isdue), ($otacurrency ?: $currencysymb), ['<span>%s</span>', '<span>%s</span>']); ?>
722 724 </div>
723 725 <?php
724 726 if (!is_null($row['totpaid'])) {
725 727 ?>
726 728 <div class="vbo-bookingslist-total-totpaid">
727 - <span><?php echo $currencysymb; ?></span>
728 - <span><?php echo VikBooking::numberFormat($row['totpaid']); ?></span>
729 + <?php echo VikBooking::formatCurrencyNumber(VikBooking::numberFormat($row['totpaid']), $currencysymb, ['<span>%s</span>', '<span>%s</span>']); ?>
729 730 <?php
730 731 if ($row['refund'] > 0) {
731 732 ?>
732 733 <span class="vbo-bookingslist-total-refunded">
733 - <span><?php echo $currencysymb; ?></span>
734 - <span><?php echo VikBooking::numberFormat($row['refund']); ?></span>
734 + <?php echo VikBooking::formatCurrencyNumber(VikBooking::numberFormat($row['refund']), $currencysymb, ['<span>%s</span>', '<span>%s</span>']); ?>
735 735 </span>
736 736 <?php
737 737 }
738 738 ?>
@@ -741,10 +741,9 @@
741 741 } elseif ($row['refund'] > 0) {
742 742 ?>
743 743 <div class="vbo-bookingslist-total-totpaid">
744 744 <span class="vbo-bookingslist-total-refunded">
745 - <span><?php echo $currencysymb; ?></span>
746 - <span><?php echo VikBooking::numberFormat($row['refund']); ?></span>
745 + <?php echo VikBooking::formatCurrencyNumber(VikBooking::numberFormat($row['refund']), $currencysymb, ['<span>%s</span>', '<span>%s</span>']); ?>
747 746 </span>
748 747 </div>
749 748 <?php
750 749 }
@@ -766,9 +765,9 @@
766 765 <?php
767 766 if (!empty($row['adminnotes'])) {
768 767 ?>
769 768 <span class="vbo-admin-tipsicon vbo-admin-notes-icn" data-bid="<?php echo $row['id']; ?>"><?php VikBookingIcons::e('sticky-note'); ?></span>&nbsp;
770 - <div class="vbo-order-admin-notes-cnt" data-bid="<?php echo $row['id']; ?>" style="display: none;"><?php echo nl2br($row['adminnotes']); ?></div>
769 + <div class="vbo-order-admin-notes-cnt" data-bid="<?php echo $row['id']; ?>" style="display: none;"><?php echo nl2br(htmlspecialchars($row['adminnotes'])); ?></div>
771 770 <?php
772 771 }
773 772
774 773 // build the proper invoice SID for bc
@@ -820,9 +819,9 @@
820 819
821 820 </table>
822 821 </div>
823 822 <input type="hidden" name="option" value="com_vikbooking" />
824 -<input type="hidden" name="cust_id" id="cust_id" value="<?php echo !empty($pcust_id) ? $pcust_id : ''; ?>" />
823 +<input type="hidden" name="cust_id" id="cust_id" value="<?php echo !empty($pcust_id) ? JHtml::fetch('esc_attr', $pcust_id) : ''; ?>" />
825 824 <input type="hidden" name="task" value="orders" />
826 825 <input type="hidden" name="boxchecked" value="0" />
827 826 <?php echo JHtml::fetch('form.token'); ?>
828 827 <?php echo $navbut; ?>
@@ -828,9 +827,9 @@
828 827 <?php echo $navbut; ?>
829 828 </form>
830 829
831 830 <script type="text/javascript">
832 -if (jQuery.isFunction(jQuery.fn.tooltip)) {
831 +if (typeof jQuery.fn.tooltip === 'function') {
833 832 jQuery(".hasTooltip").tooltip();
834 833 } else {
835 834 jQuery.fn.tooltip = function(){};
836 835 }
@@ -1004,9 +1003,9 @@
1004 1003 });
1005 1004
1006 1005 jQuery(document).mouseup(function(e) {
1007 1006 if (!bctags_tip_on) {
1008 - return false;
1007 + return;
1009 1008 }
1010 1009 if (jQuery(".vbo-blist-tip-bctag-subtip").length) {
1011 1010 var vbo_overlay_subtip_cont = jQuery(".vbo-blist-tip-bctag-subtip-inner");
1012 1011 if (!vbo_overlay_subtip_cont.is(e.target) && vbo_overlay_subtip_cont.has(e.target).length === 0) {
@@ -1011,9 +1010,9 @@
1011 1010 var vbo_overlay_subtip_cont = jQuery(".vbo-blist-tip-bctag-subtip-inner");
1012 1011 if (!vbo_overlay_subtip_cont.is(e.target) && vbo_overlay_subtip_cont.has(e.target).length === 0) {
1013 1012 jQuery(".vbo-blist-tip-bctag-subtip").remove();
1014 1013 bctags_tip_on = false;
1015 - return true;
1014 + return;
1016 1015 }
1017 1016 }
1018 1017 });
1019 1018
@@ -1177,9 +1176,9 @@
1177 1176 tmpl: "component",
1178 1177 id_order: all_bids
1179 1178 },
1180 1179 (res) => {
1181 - var counters = JSON.parse(res);
1180 + var counters = typeof res === 'object' ? res : JSON.parse(res);
1182 1181 for (var bid in all_bids) {
1183 1182 if (!all_bids.hasOwnProperty(bid)) {
1184 1183 continue;
1185 1184 }
@@ -1246,13 +1245,13 @@
1246 1245 <div class="vbo-gen-invoices-helper" style="display: none;">
1247 1246 <form action="index.php?option=com_vikbooking" method="post" id="vbo-geninv-form">
1248 1247 <div class="vbo-calendar-cfield-entry">
1249 1248 <label for="invoice_num"><?php echo JText::translate('VBINVSTARTNUM'); ?></label>
1250 - <span><input type="number" min="1" size="4" value="<?php echo $nextinvnum; ?>" id="invoice_num" name="invoice_num" /></span>
1249 + <span><input type="number" min="1" size="4" value="<?php echo JHtml::fetch('esc_attr', $nextinvnum); ?>" id="invoice_num" name="invoice_num" /></span>
1251 1250 </div>
1252 1251 <div class="vbo-calendar-cfield-entry">
1253 1252 <label for="invoice_suff"><?php echo JText::translate('VBINVNUMSUFFIX'); ?></label>
1254 - <span><input type="text" size="7" value="<?php echo $invsuff; ?>" id="invoice_suff" name="invoice_suff" /></span>
1253 + <span><input type="text" size="7" value="<?php echo JHtml::fetch('esc_attr', $invsuff); ?>" id="invoice_suff" name="invoice_suff" /></span>
1255 1254 </div>
1256 1255 <div class="vbo-calendar-cfield-entry">
1257 1256 <label for="invoice_date"><?php echo JText::translate('VBINVUSEDATE'); ?></label>
1258 1257 <span>
@@ -1259,9 +1258,9 @@
1259 1258 <select id="invoice_date" name="invoice_date">
1260 1259 <?php
1261 1260 if (!empty($oldinvdate)) {
1262 1261 ?>
1263 - <option value="<?php echo date($df, $oldinvdate); ?>"><?php echo date($df, $oldinvdate); ?></option>
1262 + <option value="<?php echo JHtml::fetch('esc_attr', date($df, $oldinvdate)); ?>"><?php echo date($df, $oldinvdate); ?></option>
1264 1263 <?php
1265 1264 }
1266 1265 ?>
1267 1266 <option value="<?php echo date($df, time()); ?>"><?php echo date($df, time()); ?></option>
@@ -1281,12 +1280,12 @@
1281 1280
1282 1281 </div>
1283 1282 <?php
1284 1283 foreach ($cid as $invid) {
1285 - echo '<input type="hidden" name="cid[]" value="'.$invid.'" />';
1284 + echo '<input type="hidden" name="cid[]" value="'. (int) $invid . '" />';
1286 1285 }
1287 1286 if ($pconfirmgen > 0) {
1288 - echo '<input type="hidden" name="confirmgen" value="'.$cid[0].'" />';
1287 + echo '<input type="hidden" name="confirmgen" value="' . (int) $cid[0] . '" />';
1289 1288 }
1290 1289 ?>
1291 1290 <input type="hidden" name="option" value="com_vikbooking" />
1292 1291 <input type="hidden" name="task" value="geninvoices" />
@@ -1304,9 +1303,9 @@
1304 1303 footer_right: '<button type="button" class="btn btn-success" onclick="document.getElementById(\'vbo-geninv-form\').submit();"><i class="vboicn-file-text2"></i><?php echo addslashes(JText::translate('VBOGENINVOICES')); ?></button>',
1305 1304 <?php
1306 1305 if (count($cid) === 1) {
1307 1306 ?>
1308 - footer_left: '<a href="index.php?option=com_vikbooking&task=editbusy&cid[]=<?php echo $cid[0]; ?>&frominv=1" class="btn vbo-config-btn"><?php echo addslashes(JText::translate('VBINVEDITBINFO')); ?></a>',
1307 + footer_left: '<a href="index.php?option=com_vikbooking&task=editbusy&cid[]=<?php echo (int) $cid[0]; ?>&frominv=1" class="btn vbo-config-btn"><?php echo addslashes(JText::translate('VBINVEDITBINFO')); ?></a>',
1309 1308 <?php
1310 1309 }
1311 1310 ?>
1312 1311 onDismiss: () => {