PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.6
VikBooking Hotel Booking Engine & PMS v1.8.6
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 1.7.3 All 36 releases
vikbooking / admin / controllers / listings.php

listings.php in VikBooking Hotel Booking Engine & PMS 1.8.6, at admin/controllers/listings.php

75 lines 1.8 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 core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2025 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * VikBooking listings controller.
16 *
17 * @since 1.17.6 (J) - 1.7.6 (WP)
18 */
19 class VikBookingControllerListings extends JControllerAdmin
20 {
21 /**
22 * AJAX endpoint to check the listings with a missing mini-thumbnail.
23 *
24 * @return void
25 */
26 public function check_mini_thumbnails()
27 {
28 if (!JSession::checkToken()) {
29 VBOHttpDocument::getInstance()->close(403, JText::translate('JINVALID_TOKEN'));
30 }
31
32 $result = [
33 'processed' => 0,
34 'generated' => 0,
35 ];
36
37 $dbo = JFactory::getDbo();
38
39 $dbo->setQuery(
40 $dbo->getQuery(true)
41 ->select([
42 $dbo->qn('id'),
43 $dbo->qn('img'),
44 ])
45 ->from($dbo->qn('#__vikbooking_rooms'))
46 ->where($dbo->qn('avail') . ' = 1')
47 );
48
49 $listings = $dbo->loadAssocList();
50
51 $updpath = VBO_SITE_PATH . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR;
52
53 foreach ($listings as $listing) {
54 // increase counter
55 $result['processed']++;
56
57 if (is_file($updpath . $listing['img']) && !is_file($updpath . 'mini_' . $listing['img'])) {
58 // generate thumbnail
59 try {
60 // resize the original image
61 (new VikResizer)->proportionalImage($updpath . $listing['img'], $updpath . 'mini_' . $listing['img'], 96, 96);
62
63 // increase counter
64 $result['generated']++;
65 } catch (Throwable $e) {
66 // silently catch any PHP GD error and continue
67 }
68 }
69 }
70
71 // send result to output
72 VBOHttpDocument::getInstance()->json($result);
73 }
74 }
75