Файловый менеджер - Редактировать - /home/lmsyaran/public_html/components/com_reservation/router.php
Назад
<?php /*----------------------------------------------------------------------------------| www.vdm.io |----/ fdsh /-------------------------------------------------------------------------------------------------------/ @version 1.0.39 @build 4th April, 2023 @created 17th December, 2020 @package Reservation @subpackage router.php @author farhad shahbazi <http://farhad.com> @copyright Copyright (C) 2015. All Rights Reserved @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html ____ _____ _____ __ __ __ __ ___ _____ __ __ ____ _____ _ _ ____ _ _ ____ (_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \( _ )( \( )( ___)( \( )(_ _) .-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/ )(_)( ) ( )__) ) ( )( \____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__) (_____)(_)\_)(____)(_)\_) (__) /------------------------------------------------------------------------------------------------------*/ // No direct access to this file defined('_JEXEC') or die('Restricted access'); /** * Routing class from com_reservation * * @since 3.3 */ class ReservationRouter extends JComponentRouterBase { /** * Build the route for the com_reservation component * * @param array &$query An array of URL arguments * * @return array The URL arguments to use to assemble the subsequent URL. * * @since 3.3 */ public function build(&$query) { $segments = array(); // Get a menu item based on Itemid or currently active $params = JComponentHelper::getParams('com_reservation'); if (empty($query['Itemid'])) { $menuItem = $this->menu->getActive(); } else { $menuItem = $this->menu->getItem($query['Itemid']); } $mView = (empty($menuItem->query['view'])) ? null : $menuItem->query['view']; $mId = (empty($menuItem->query['id'])) ? null : $menuItem->query['id']; if (isset($query['view'])) { $view = $query['view']; if (empty($query['Itemid'])) { $segments[] = $query['view']; } unset($query['view']); } // Are we dealing with a item that is attached to a menu item? if (isset($view) && ($mView == $view) and (isset($query['id'])) and ($mId == (int) $query['id'])) { unset($query['view']); unset($query['catid']); unset($query['id']); return $segments; } if (isset($view) && isset($query['id']) && ($view === 'plan' || $view === 'messages' || $view === 'consultantitem' || $view === 'usersign' || $view === 'payment' || $view === 'firstqst' || $view === 'consultantsignup' || $view === 'comment' || $view === 'doctors' || $view === 'doctorsignup' || $view === 'doctor' || $view === 'reserve_appointment' || $view === 'consultant_plan' || $view === 'login' || $view === 'res_list')) { if ($mId != (int) $query['id'] || $mView != $view) { if (($view === 'plan' || $view === 'messages' || $view === 'consultantitem' || $view === 'usersign' || $view === 'payment' || $view === 'firstqst' || $view === 'consultantsignup' || $view === 'comment' || $view === 'doctors' || $view === 'doctorsignup' || $view === 'doctor' || $view === 'reserve_appointment' || $view === 'consultant_plan' || $view === 'login' || $view === 'res_list')) { $segments[] = $view; $id = explode(':', $query['id']); if (count($id) == 2) { $segments[] = $id[1]; } else { $segments[] = $id[0]; } } } unset($query['id']); } $total = count($segments); for ($i = 0; $i < $total; $i++) { $segments[$i] = str_replace(':', '-', $segments[$i]); } return $segments; } /** * Parse the segments of a URL. * * @param array &$segments The segments of the URL to parse. * * @return array The URL attributes to be used by the application. * * @since 3.3 */ public function parse(&$segments) { $count = count($segments); $vars = array(); //Handle View and Identifier switch($segments[0]) { case 'plan': $vars['view'] = 'plan'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } break; case 'messages': $vars['view'] = 'messages'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'consultantitem': $vars['view'] = 'consultantitem'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'usersign': $vars['view'] = 'usersign'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('usersign', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'payment': $vars['view'] = 'payment'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('payment', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'firstqst': $vars['view'] = 'firstqst'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'consultantsignup': $vars['view'] = 'consultantsignup'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultantsignup', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'comment': $vars['view'] = 'comment'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'doctors': $vars['view'] = 'doctors'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'doctorsignup': $vars['view'] = 'doctorsignup'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('doctorsignup', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'doctor': $vars['view'] = 'doctor'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'reserve_appointment': $vars['view'] = 'reserve_appointment'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'consultant_plan': $vars['view'] = 'consultant_plan'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'login': $vars['view'] = 'login'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('login', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; case 'res_list': $vars['view'] = 'res_list'; if (is_numeric($segments[$count-1])) { $vars['id'] = (int) $segments[$count-1]; } elseif ($segments[$count-1]) { $id = $this->getVar('consultant', $segments[$count-1], 'alias', 'id'); if($id) { $vars['id'] = $id; } } break; } return $vars; } protected function getVar($table, $where = null, $whereString = null, $what = null, $category = false, $operator = '=', $main = 'reservation') { if(!$where || !$what || !$whereString) { return false; } // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); $query->select($db->quoteName(array($what))); if ('categories' == $table || 'category' == $table || $category) { $getTable = '#__categories'; $query->from($db->quoteName($getTable)); // we need this to target the components categories (TODO will keep an eye on this) $query->where($db->quoteName('extension') . ' LIKE '. $db->quote((string)'com_' . $main . '%')); } else { // we must check if the table exist (TODO not ideal) $tables = $db->getTableList(); $app = JFactory::getApplication(); $prefix = $app->get('dbprefix'); $check = $prefix.$main.'_'.$table; if (in_array($check, $tables)) { $getTable = '#__'.$main.'_'.$table; $query->from($db->quoteName($getTable)); } else { return false; } } if (is_numeric($where)) { return false; } elseif ($this->checkString($where)) { // we must first check if this table has the column $columns = $db->getTableColumns($getTable); if (isset($columns[$whereString])) { $query->where($db->quoteName($whereString) . ' '.$operator.' '. $db->quote((string)$where)); } else { return false; } } else { return false; } $db->setQuery($query); $db->execute(); if ($db->getNumRows()) { return $db->loadResult(); } return false; } protected function checkString($string) { if (isset($string) && is_string($string) && strlen($string) > 0) { return true; } return false; } } function ReservationBuildRoute(&$query) { $router = new ReservationRouter; return $router->build($query); } function ReservationParseRoute($segments) { $router = new ReservationRouter; return $router->parse($segments); }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка