addToolBar(); if (!JFactory::getUser()->authorise('core.vbo.availability', 'com_vikbooking')) { VBOHttpDocument::getInstance()->close(403, JText::translate('JERROR_ALERTNOAUTHOR')); } $dbo = JFactory::getDbo(); $app = JFactory::getApplication(); if (file_exists(VCM_ADMIN_PATH.DIRECTORY_SEPARATOR.'assets'.DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR.'vcm-channels.css')) { $document = JFactory::getDocument(); $document->addStyleSheet(VCM_ADMIN_URI.'assets/css/vcm-channels.css'); } $session = JFactory::getSession(); $cookie = JFactory::getApplication()->input->cookie; $pmonth = VikRequest::getInt('month', 0, 'request'); $pmnum = VikRequest::getInt('mnum', 0, 'request'); $cmnum = $cookie->get('vbOvwMnum', '', 'string'); $punits_show_type = VikRequest::getString('units_show_type', '', 'request'); // category filter $pcategory_id = VikRequest::getString('category_id', '', 'request'); $scategory_id = $session->get('vbOvwCatid', 0); $pcategory_id = !strlen($pcategory_id) && !empty($scategory_id) ? $scategory_id : $pcategory_id; $session->set('vbOvwCatid', $pcategory_id); /** * Apply task manager filters. * * @since 1.18.0 (J) - 1.8.0 (WP) */ $tmfilters = (array) $app->input->get('tmfilters', [], 'array'); if (empty($pmonth)) { // overwrite the first month to display if (($tmfilters['dates'] ?? '') && preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}\s?:\s?[0-9]{4}-[0-9]{2}-[0-9]{2}$/', (string) $tmfilters['dates'])) { // custom range of dates filter will overwrite the current month to display $dparts = explode(':', $tmfilters['dates']); $begin_ts = strtotime(trim($dparts[0])); $pmonth = strtotime(date('Y-m-01', $begin_ts)); } elseif (($tmfilters['calendar_month'] ?? '') && preg_match('/01$/', (string) $tmfilters['calendar_month'])) { // overwrite the current month to display $pmonth = strtotime($tmfilters['calendar_month']) ?: $pmonth; } } $pbmode = VikRequest::getString('bmode', '', 'request'); if (!empty($pbmode) && ($pbmode == 'classic' || $pbmode == 'tags')) { VikRequest::setCookie('vbTagsMode', $pbmode, (time() + (86400 * 365)), '/'); $session->set('vbTagsMode', $pbmode); } else { $cbmode = $cookie->get('vbTagsMode', '', 'string'); $pbmode = (!empty($cbmode) && ($cbmode == 'classic' || $cbmode == 'tags') ? $cbmode : 'classic'); VikRequest::setCookie('vbTagsMode', $pbmode, (time() + (86400 * 365)), '/'); $session->set('vbTagsMode', $pbmode); } if (!empty($punits_show_type)) { $session->set('vbUnitsShowType', $punits_show_type); } if (empty($pmonth)) { $sess_month = $session->get('vbOverviewMonth', ''); if (!empty($sess_month)) { $pmonth = $sess_month; } } if (intval($cmnum) > 0 && empty($pmnum)) { $pmnum = $cmnum; } if ($pmnum > 0) { VikRequest::setCookie('vbOvwMnum', $pmnum, (time() + (86400 * 365)), '/'); $session->set('vbOvwMnum', $pmnum); } else { $smnum = $session->get('vbOvwMnum', '1'); $pmnum = intval($smnum) > 0 ? $smnum : 1; } // remove expired locked records $q = "DELETE FROM `#__vikbooking_tmplock` WHERE `until`<" . time() . ";"; $dbo->setQuery($q); $dbo->execute(); $q = "SELECT `checkin` FROM `#__vikbooking_busy` ORDER BY `checkin` ASC LIMIT 1;"; $dbo->setQuery($q); $oldest_checkin = $dbo->loadResult(); if (!$oldest_checkin) { $oldest_checkin = 0; } $q = "SELECT `checkout` FROM `#__vikbooking_busy` ORDER BY `checkout` DESC LIMIT 1;"; $dbo->setQuery($q); $furthest_checkout = $dbo->loadResult(); if (!$furthest_checkout) { $furthest_checkout = 0; } if (!empty($pmonth)) { $session->set('vbOverviewMonth', $pmonth); $tsstart = $pmonth; } else { $oggid = getdate(); $tsstart = mktime(0, 0, 0, $oggid['mon'], 1, $oggid['year']); } $oggid = getdate($tsstart); $tsend = mktime(0, 0, 0, ($oggid['mon'] + $pmnum), 1, $oggid['year']); $today = getdate(); $firstmonth = mktime(0, 0, 0, $today['mon'], 1, $today['year']); $wmonthsel = "\n"; $lim = $app->getUserStateFromRequest("com_vikbooking.limit", 'limit', $app->get('list_limit'), 'int'); $lim0 = VikRequest::getVar('limitstart', 0, '', 'int'); /** * Filter by category. * * @since 1.13 */ $catfilter = !empty($pcategory_id) ? "(`r`.`idcat`='" . $pcategory_id . ";' OR `r`.`idcat` LIKE '" . $pcategory_id . ";%' OR `r`.`idcat` LIKE '%;" . $pcategory_id . ";%' OR `r`.`idcat` LIKE '%;" . $pcategory_id . ";')" : ""; // $q = "SELECT SQL_CALC_FOUND_ROWS `r`.* FROM `#__vikbooking_rooms` AS `r`" . (!empty($catfilter) ? " WHERE " . $catfilter : '') . " ORDER BY `r`.`name` ASC"; $dbo->setQuery($q, $lim0, $lim); $rows = $dbo->loadAssocList(); if (!$rows) { if ($session->get('vbOvwCatid', '')) { // unset empty category with no rooms $session->set('vbOvwCatid', 0); } VikError::raiseWarning('', JText::translate('VBOVERVIEWNOROOMS')); $app->redirect("index.php?option=com_vikbooking"); $app->close(); } $dbo->setQuery('SELECT FOUND_ROWS();'); jimport('joomla.html.pagination'); $pageNav = new JPagination( $dbo->loadResult(), $lim0, $lim ); $navbut = "
| ".$pageNav->getListFooter()." |